Saturday, May 30, 2009

ImageMagickとPHPでグラデーションのかかった市松模様を作成する

Imagickでグラデーションのかかった市松模様を作成するには、以下のコードを実行します。


<!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>sample1101(ImageMagick6.5.2)</title>
</head>
<body>
<?php
$im = new Imagick();
$im->setOption("option:distort:viewport", "210x210+0+0");
$im->newPseudoImage(210, 210, "pattern:checkerboard");
$im->normalizeImage(Imagick::CHANNEL_ALL);
$im->paintOpaqueImage("black", "#7799ff", 0);
$im->setImageVirtualPixelMethod(
Imagick::VIRTUALPIXELMETHOD_TILE);
$points = array(0.5, 30);
//$im->distortImage(Imagick::DISTORTION_SCALEROTATETRANSLATE,
// $points, false);
// ScaleRotateTranslateDistortion in distort.h
$im->distortImage(3, $points, false);

$im2 = new Imagick();
$im2->newPseudoImage(210, 210, "gradient:#22338880-#00000000");
$im->compositeImage($im2, Imagick::COMPOSITE_OVER,
0, 0, Imagick::CHANNEL_ALL);
$im->writeImage('sample1101a.png');

$im2->destroy();
$im->destroy();
?>
<img src="sample1101a.png" /><br />

</body>
</html>


出力画像(sample1101a.png)
Imagickで描画したグラデーションのかかった市松模様

関連項目
ImageMagickでグラデーションのかかった市松模様を作成する (convertコマンドによる同様の処理)

No comments: