[PHP]GDを利用した画像リサイズについて
[PHP]GDを利用した画像リサイズについて
GDを利用した画像リサイズ処理を行うクラスを作ったのですが、
以下のようなエラー(文字化け)が出てしまい画像出力することができません。
有識者の方、どうか知恵をお貸しください。宜しくお願い致します。
????JFIF??;CREATOR: gd-jpeg v1.0 (using IJG JPEG v70), quality = 75
??C
$.' ",#(7),01444'9=82<.342??C
2!!22222222222222222222222222222222222222222222222222??II"??
???}!1AQa"q2???#B??R??$3br?
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz???????????????????????????????????????????????????????????????????????????
???w!1AQaq"2?B???? #3R?br?
-------- 以下省略 ----------
◆作成したPHPファイル
・test.php
<?php
require_once 'Image.php';
$path = './400x300.jpg';
$r = new Image($path, 75);
$r->resize(75);
?>
・Images.php
<?php
class Image{
var $new_width;
var $path;
function Image($path, $new_width){
@header("Content-type: image/jpeg");
$this->path = $path;
$this->new_width = $new_width;
}
function resize(){
global $new_width;
global $path;
// 画像パス
$image = imagecreatefromjpeg($this->path);
// 画像のサイズを取得
$width = 150;
$height = 150;
$rate = $this->new_width / $width;
$new_height = $rate * $height;
$thumb = imagecreatetruecolor($this->new_width, $new_height);
imagecopyresized($thumb, $image, 0, 0, 0, 0, $this->new_width, $new_height, $width, $height);
// imagecopyresampled($thumb, $image_path, 0, 0, 0, 0, $this->new_width, $new_height, $width, $height);
imagejpeg($thumb, null, 75);
imagedestroy($image);
}
}
?>
◆環境と状況
・サーバ:WindowsXP(XAMPPを利用してローカル環境を構築)
・phpinfo()にて、GD Support=enabled、JPEG Support=enabledを確認
・ステップ実行(デバック)にてimagejpeg($thumb, null, 75);まで問題なく実行可能。
※imagejpeg($thumb, null, 75);実行後上記文字列が出力される。
・コメントアウト個所のimagecopyresampledでも動作結果は同じ。
・参考にしたサイト
http://goodjob.boy.jp/chirashinoura/id/79.html
恐れ入りますが、ご回答お願い致します。
補足
ご回答ありがとうございます。 こんな方法があったんですね^^ PHPのマニュアル見落としてました。 試してみましたが、 どうしてもセピアっぽくなるだけで、 セピアになりきってない感じになってしまいます。 より正確にセピアっぽくするためには、 カラー自体を計算すべきなんですかね・・・。 ていうか計算方法すら思いつきませんが・・・。