プログラム|ソースコード|サムネイル
処理方法は次のとおりです。
1. 元の画像の幅または高さのいずれかが指定されたサイズより小さい場合、比例サムネイル処理のみが実行されます。
2.元の画像が両方とも指定サイズより小さい場合、サイズを縮小してからトリミングの中心位置を計算します
ソース コードは次のとおりです: /* * $o_photo 元の画像のパス * $d_photo 処理後の画像のパス * $ width 幅を定義します * ,$d_photo,$width,$height){ $temp_img = imagecreatefromjpeg($o_photo); //Get元画像の幅 $o _height = ImageSy ($ TEMP_IMG); // 元画像の高さを取得 // 判定処理方法 IF ($ width & gt; $ o_width || $ height & gt; $ o_height) {// 元の幅または高比率 指定されたサイズは小さく、圧縮されています $o_width $newheight=$o_height; =$newwidth*$height/$newheight ; $newheight=$height; Imagecopyresampled($new_img, $temp_img , 0, 0, 0, 0、$newwidth、$newheight、$o_width、$o_height) ; ImageJpeg($ new_photo); $newwidth=$width; $newheight=$o_height*$width/$o_width; $x=0; $y=($newheight-$height)/2; }else{ // それ以外の場合は、高さが適応型であることを確認してください /$o_height ; $newheight=$height; $x=($newwidth-$width)/2; //縮小🎜> $new_img = imagecreatetruecolor($newwidth, $newheight); imagecopyresampled($new_img, $temp_img, 0, 0, 0, 0, $newwidth, $newheight, $o_width, $o_height); ($new_img, $d_photo); imagedestroy($new_img); $temp_img = imagecreatefromjpeg($d_photo); $o_width = imagex($temp_img); o_height = imagey($temp_img); //サムネイルの高さを取得します //画像をトリミングします $new_imgx = imagecreatetruecolor($width,$height) imagecopyresampled ($new_imgx,$temp_img); ,0,0,$x,$y,$width,$height,$width,$height); imagejpeg($new_imgx, $d_photo); imagedestroy($new_imgx); 🎜> } ?> |