カテゴリー
CentOS PHP

生きて仕事してますよ

とりあえず映像乞食の俺ですが、編集とかプチ加工の仕事が捗るPHPコードを置いておきますね。

コーデックはいらないけどGDライブラリは必要です。

/*
======================================================================
画像リサイズ
======================================================================
$size:リサイズ後の最大縦横の値
$moto:元画像
$ato:リサイズ画像
$tmp:一時ファイルを置くdir
*/
function make_img($size,$moto,$ato,$tmp){
    $J_q=70;//JPEGクオリチー
    $tmp_dir=$tmp;
    $naka_img=$tmp_dir.time();
    $TY_size=$size;
    list($width,$height,$type,$attr)=getimagesize($moto);
    $ty_size=$width-$height;
    if($type==2){//ここからJPEG処理
        $image=ImageCreateFromJPEG($moto);
        $width=ImageSX($image);
        $height=ImageSY($image);
        if($width>=$height){
            $new_width=$TY_size;
            $rate=$new_width/$width;
            $new_height=$rate*$height;
        }else{
            $new_height=$TY_size;
            $rate=$new_height/$height;
            $new_width=$rate*$width;
        }
        $new_image=ImageCreateTrueColor($new_width,$new_height);
        ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height);
        ImageJPEG($new_image,$naka_img,$J_q);
        rename($naka_img,$ato);
        chmod($ato,0666);
        ImageDestroy($image);
        ImageDestroy($new_image);
    }elseif($type==1){//ここからGIF処理
        $image=ImageCreateFromGIF($moto);
        $width=ImageSX($image);
        $height=ImageSY($image);
        if($width>=$height){
            $new_width=$TY_size;
            $rate=$new_width/$width;
            $new_height=$rate*$height;
        }else{
            $new_height=$TY_size;
            $rate=$new_height/$height;
            $new_width=$rate*$width;
        }
        $new_image=ImageCreateTrueColor($new_width,$new_height);
        $alpha=imagecolortransparent($image);
        imagefill($new_image,0,0,$alpha);
        imagecolortransparent($new_image,$alpha);
        ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height);
        ImageGIF($new_image,$naka_img);
        rename($naka_img,$ato);
        chmod($ato,0666);
        ImageDestroy($image);
        ImageDestroy($new_image);
    }elseif($type==3){//ここからPNG処理
        $image=ImageCreateFromPNG($moto);
        $width=ImageSX($image);
        $height=ImageSY($image);
        if($width>=$height){
            $new_width=$TY_size;
            $rate=$new_width/$width;
            $new_height=$rate*$height;
        }else{
            $new_height=$TY_size;
            $rate=$new_height/$height;
            $new_width=$rate*$width;
        }
        $new_image=ImageCreateTrueColor($new_width,$new_height);
        imagealphablending($new_image,false);
        imagesavealpha($new_image,true);
        ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height);
        ImagePNG($new_image,$naka_img);
        rename($naka_img,$ato);
        chmod($ato,0666);
        ImageDestroy($image);
        ImageDestroy($new_image);
    }else{
        returnFALSE;
    }
}

 

使い方はだいたいわかると思うけど、とりあえずAEを終了してコードエディタを開きます。
んでおもむろにコードをコピペします。

終わり。

なわけではなくて、PHPで画像のリサイズするナンチャッテ関数です。
JPEGとGIFとPNGに対応してます。
でも画像形式の変更はできません。元画像がJPEGならリサイズされた画像もJPEGになります。

「$size」はリサイズ後の長方のピクセル数です。
縦横長い方に合わせた比率になります。

「$moto」はリサイズする元画像です。

「$ato」はリサイズ後の画像です。

「$tmp」変換作業で使う一時ファイルを置くディレクトリです。

こんな感じ

$size = '200';
$moto = '/hoge/gazou.jpg';
$ato = '/moge/gazou_s.jpg';
$tmp = '/hoge/tmp/';

make_img($size,$moto,$ato,$tmp);

 

これで「moge」というディレクトリに「gazou_s.jpg」ってファイルがでけてるハズです。

そんなに便利じゃないしガキがコピペで書いたようなモノです。

実際に使ってへんなコトになっても俺知らねーし。
死んでも知らんし。

そんな感じ。