<!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>sample653(ImageMagick6.4.2)</title>
</head>
<body>
<?php
/* 画像の端を半透明グラデーションにする */
$im = new Imagick("sf2.jpg");
$im->setImageMatte(true);
$it = $im->getPixelIterator();
foreach($it as $py => $line){
foreach($line as $px => $pixel){
$pixel->setColorValue(Imagick::COLOR_ALPHA,
((1.0-pow(2*$px/(float)$im->getImageWidth()-1.0, 4))*
(1.0-pow(2*$py/(float)$im->getImageHeight()-1.0, 4)))
);
}
$it->syncIterator();
}
$im->writeImage('sample653a.png');
/* 白背景と重ね合わせてjpegで保存 */
$im2 = new Imagick();
$im2->newImage($im->getImageWidth(), $im->getImageHeight(), "white");
$im2->compositeImage($im, Imagick::COMPOSITE_DEFAULT, 0, 0);
$im2->writeImage('sample653b.jpg');
$im2->destroy();
$im->destroy();
?>
<img src="sample653a.png" />
<img src="sample653b.jpg" />
</body>
</html>
元画像(sf2.jpg)
出力画像(sample653a.png):半透明PNG
出力画像(sample653b.jpg)
関連項目
ImageMagickとPHPで半透明の円形に切り取って他の画像と重ね合わせる
ImageMagickで画像に半透明グラデーションをかける
No comments:
Post a Comment