2010/09/18

[PHP - Image Resize]

大きいイメージデータの解像度を下げて、
ファイルサイズも抑えるようなPHPサンプルコード

$filename="xxx.png";
$filename_new="xxx.jpg";

$fp=fopen($filename,"rb");
$imgdata=fread($fp,8);
fclose($fp);

if(preg_match('/^\x89PNG\x0d\x0a\x1a\x0a/',$imgdata)){
    $img=imagecreatefrompng($filename);
}elseif(preg_match('/^GIF8[79]a/',$imgdata)){
    $img=imagecreatefromgif($filename);
}elseif(preg_match('/^\xff\xd8/',$imgdata)){
    $img=imagecreatefromjpeg($filename);
}

list($width,$height)=getimagesize($filename);
$new_height=1024;
$new_width=($new_height/$height)*$width;
$new_img=ImageCreateTrueColor($new_width, $new_height);
ImageCopyResampled($new_img,$img,0,0,0,0,$new_width,$new_height,$width,$height);
imagejpeg($new_img,$filename_new,50);

0 件のコメント:

コメントを投稿