セピア調化
画像をセピア調に変換するサンプルです。
グレイスケール化することによって輝度情報を取り出し、全体をセピア調(茶色)っぽく変換しています。
サンプルコード
<?php
$img = ImageCreateFromJPEG('sample0.jpg');
// グレースケール化
imagefilter($img, IMG_FILTER_GRAYSCALE);
$width = ImageSx($img);
$height = ImageSy($img);
// 画像中の全ピクセルに対して処理する
for ($y=0; $y < $height; $y++) {
for ($x=0; $x < $width; $x++) {
// ピクセル値を取得
$pixel = ImageColorAt($img, $x, $y);
// グレイスケールなので必ず、R == G == B
// になるが、RGB説明のために個別に取り出す
$r = ($pixel >> 16) & 0xff;
$g = ($pixel >> 8) & 0xff;
$b = $pixel & 0xff;
// セピア調な値にする
$r = ($r * 240) / 255;
$g = ($g * 200) / 255;
$b = ($g * 148) / 255;
// ピクセルの値を変更する
ImageSetPixel($img, $x, $y, ImageColorResolve($img, $r, $g, $b));
}
}
header('Content-Type: image/jpeg');
ImageJPEG($img);
?>
動作例
<img src="script/sepia.php">
元画像