phpでイメージの縮小を考える
Webにアップした画像を携帯で見るときに画像が php で小さく出来ないかな?と思い php のマニュアルを見ていたら、imagecopyresampled ってものがあった。これで出来そうかな?
int imagecopyresampled ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)
引数 *座標は、左上を基準とします。
resource dst_im : コピー先のイメージ
resource src_im :コピー元のイメージID
int dstX :コピー先のイメージX座標で、0でよし
int dstY :コピー先のイメージY座標で、0でよし
int srcX :コピー元のイメージX座標で、0でよし
int srcY :コピー元のイメージX座標で、0でよし
int dstW :コピー先の幅 (縮小したい幅)
int dstH :コピー先の高さ (縮小したい高さ)
int srcW :コピー元の幅 (元画像の幅)
int srcH :コピー元の高さ (元画像の高さ)
コピー先イメージは、 imagecreatetruecolor で新規で作っておく。
$dis_im = imagecreatetruecolor(縮小したい幅, 縮小したい高さ)
コピー元は imagecreatefromjpeg で新規に画像を作成しておく。
$src_im = imagecreatefromjpeg(コピー元ファイル名)
また、コピー元の画像の大きさを getimagesize で取得しておく。
$size = getimagesize (コピー元ファイル名)
上の返り値は、$size[0] =幅、 $size[1] =高さ
最後は、imagejpeg を使って、画像をブラウザまたはファイルに出力する。
imagejpeg ( コピー先ID ここでは、$dis_im , 出力ファイル名 , [品質])
品質は、なしでも良い。デフォルトは品質値(75)です。
こんな、感じで出来そうかな。