Thursday, October 09, 2008

ImageMagickとPHPを使用して画像の左上と右下に半透明のグラデーションをかける

ImageMagickとPHPを使用して画像の左上と右下に半透明のグラデーションをかけるには、以下のコードを実行します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja" dir="ltr">
<head>
<title>sample644(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 画像の左上下と右下に半透明のグラデーションを描画する */
$im = new Imagick("sf2.jpg");
$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), "black");
$im2->setImageMatte(true);
$idraw = new ImagickDraw();
/* 塗りつぶし色設定 */
$idraw->setStrokeColor('white');
$idraw->setStrokeWidth(200);
$idraw->setStrokeAntialias(false);
$idraw->line(0, $im->getImageHeight(), $im->getImageWidth(), 0);
$im2->drawImage($idraw);
$im2->paintTransparentImage("white", 0, 0);
$im2->paintOpaqueImage("black", "#bbddffd0", 0);
$im2->blurImage(0, 20, Imagick::CHANNEL_ALL);

/* 重ね合わせ */
$im->compositeImage($im2, Imagick::COMPOSITE_DEFAULT, 0, 0);
$im->writeImage('sample644a.jpg');

$im2->destroy();
$im->destroy();
?>
<img src="sample644a.jpg" />

</body>
</html>

元画像(sf2.jpg)


出力画像(sample644a.jpg)


関連項目




No comments: