ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用して画像のサムネイルを生成する_PHP チュートリアル
PHP は画像のサムネイルを生成します:
PHP を使用して画像サムネイルを生成するには、PHP サーバーに GD2 グラフィック ライブラリがインストールされていることを確認してください
クラスを使用して画像のサムネイルを生成します。以下のクラスのソースコードを参照してください。
このクラスメソッドを呼び出します:resizeimage = new assignimage("画像ソースファイルアドレス", "200", "100", "0","サムネイルアドレス");
//上記の文を使用してサムネイルを生成するだけです。ソースファイルとサムネイルのアドレスは同じにすることができ、200 と 100 はそれぞれ幅と高さを表します
//次のクラスを使用して画像のサムネイルを生成します。
クラスサイズ変更画像
{
//画像タイプ
var 型;
//実際の幅
var幅;
//実際の身長
変数の高さ;
//幅を変更しました
varsize_width;
//変更後の身長
varsize_height;
//画像をトリミングするかどうか
バーカット;
//ソース画像
var srcimg;
//対象画像アドレス
var dstimg;
//一時的に作成した画像
ヴァルイム;
関数resizeimage(img, wid, hei,c,dstpath)
{
this->srcimg = img;
this->resize_width = wid;
this->resize_height = hei;
this->cut = c;
//写真の種類
this->type = strto lower(substr(strrchr(this->srcimg,"."),1));
//画像を初期化する
this->initi_img();
//対象画像アドレス
これ -> dst_img(dstpath);
//--
this->width = imagex(this->im);
this->height = imagey(this->im);
//画像を生成する
this->newimg();
ImageDestroy (this->im);
}
関数newimg()
{
//変更された画像の割合
resize_ratio = (this->resize_width)/(this->resize_height);
//実際の画像の比率
比率 = (この->幅)/(この->高さ);
if((this->cut)=="1")
//画像をトリミング
{
if(ratio>=resize_ratio)
//優先度高
{
newimg = imagecreatetruecolor(this->resize_width,this->resize_height);
Imagecopyresampled(newimg, this->im, 0, 0, 0, 0, this->resize_width, this->resize_height, ((this->height)*resize_ratio), this->height);
ImageJpeg (newimg,this->dstimg);
}
if(比率
//幅を優先
{
newimg = imagecreatetruecolor(this->resize_width,this->resize_height);
imagecopyresampled(newimg, this->im, 0, 0, 0, 0, this->resize_width, this->resize_height, this->width, ((this->width)/resize_ratio));
ImageJpeg (newimg,this->dstimg);
}
}
その他
//トリミングなし
{
if(ratio>=resize_ratio)
{
newimg = imagecreatetruecolor(this->resize_width,(this->resize_width)/ratio);
imagecopyresampled(newimg, this->im, 0, 0, 0, 0, this->resize_width, (this->resize_width)/ratio, this->width, this->height);
ImageJpeg (newimg,this->dstimg);
}
if(比率
{
newimg = imagecreatetruecolor((this->resize_height)*ratio,this->resize_height);
imagecopyresampled(newimg, this->im, 0, 0, 0, 0, (this->resize_height)*ratio, this->resize_height, this->width, this->height);
ImageJpeg (newimg,this->dstimg);
}
}
}
//画像を初期化する
関数initi_img()
{
if(this->type=="jpg")
{
this->im = imagecreatefromjpeg(this->srcimg);
}
if(this->type=="gif")
{
this->im = imagecreatefromgif(this->srcimg);
}
if(this->type=="png")
{
this->im = imagecreatefrompng(this->srcimg);
}
}
//画像ターゲットアドレス
関数dst_img(dstpath)
{
full_length = strlen(this->srcimg);
type_length = strlen(this->type);
name_length = full_length-type_length;
name = substr(this->srcimg,0,name_length-1);
this->dstimg = dstpath;
//これをエコー>dstimg;
}
}
?>