大きいイメージデータの解像度を下げて、
ファイルサイズも抑えるような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 件のコメント:
コメントを投稿