Thursday, December 09, 2010

PHPとGDで画像をグレースケールに変換する

PHPとGDで画像をグレースケールに変換するには、以下のコードを実行します。

<!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>gd_test2</title>
</head>
<body>
<?php
// 入力ファイル名
$fn = "sf.jpg";
// 入力ファイルサイズ取得
$img = imagecreatefromjpeg($fn);
$sx = imagesx($img);
$sy = imagesy($img);
// 出力ファイルサイズ
$ox = 100;
$oy = 100;
// イメージをグレースケールにする
if($img && imagefilter($img, IMG_FILTER_GRAYSCALE)){
// ファイル出力
imagejpeg($img, "gd_test2.jpg", 100);
// 開放
imagedestroy($img);
}
?>
<img src="gd_test2.jpg" /><br />

</body>
</html>



元画像


出力画像


動作環境
Apache httpd 2.2.17, PHP5.3.3

No comments: