PHP
GDで画像作成→リサイズ
いやあ、リサイズうまくできなくて何がだめだったかって
イメージを保存するとき、台紙じゃなくてもとの画像を指定してたってとこ。
もとの画像がリサイズってイメージ持っちゃってて・・・だめやん。
てか台紙って表し方いいのか?
↓みたいな感じでやってみた!
$new_width=240;
$kakuchoshi='jpg';
getImgbyKakuchoshi( $FilePath, $kakuchoshi );
/*
幅が240pxより大きい場合は240pxにリサイズ
*/
function resizeImg( $img, $FilePath, $kakuchoshi ){
$ret = false;
//幅 大きい場合はリサイズ
$width = imagesx($img); //横幅(ピクセル)
$height = imagesy($img); //縦幅(ピクセル)
if( $width > $this->new_width ){
// ●リサイズしたいサイズの台紙を作成
// 高さに幅リサイズ割合を適用
$new_height = $height*($this->new_width / $width);
// 台紙を作成
$new_image = imagecreatetruecolor($this->new_width, $new_height);
// ●リサイズした画像を作成
// ↓台紙に、もとの画像を、リサイズ用幅と高さに、もとの幅と高さをかえて、つくります(みたいな)
imagecopyresampled($new_image,$img,0,0,0,0,$this->new_width,$new_height,$width,$height);
// ●下の自作メソッド呼び出して、拡張子ごとにイメージを書き出し
// 台紙名を指定!ここでもとの画像指定してて時間くった。。。
setImgbyKakuchoshi( $new_image, $FilePath, $kakuchoshi );
imagedestroy($new_image);
}
}
/*
拡張子ごとにイメージ書き込み
*/
function setImgbyKakuchoshi( $img, $fileUrl, $kakuchoshi ){
//画像の作成
if($kakuchoshi=='jpg' or $kakuchoshi=='jpeg'){
imagejpeg( $img, $fileUrl );
}
elseif($kakuchoshi=='gif'){
imagegif( $img, $fileUrl );
}
elseif($kakuchoshi=='png'){
imagepng( $img, $fileUrl );
}
}