-
-
/* - 関数: 画像サイズを調整するか、サムネイルを生成します
- 戻り値: True/False
- パラメータ:
- $Image 調整する必要がある画像 (パスを含む)
- $Dw =450 調整時の最大幅、サムネイル作成時の絶対幅
- $Dh=450 調整時の最大高さ、サムネイル作成時の絶対高さ
- $Type=1 1、サイズを調整します
- サイト http: // bbs.it-home.org
- */
$path='img/';//path
- $phtypes=array(
- 'img/gif',
- 'img/ jpg' ,
- 'img/jpeg',
- 'img/bmp',
- 'img/pjpeg',
- 'img/x-png'
- );
FunctionImg($Image, $Dw =450,$Dh=450,$Type=1){
- IF(!File_Exists($Image)){
- ReturnFalse;
- }
- #サムネイルを生成する必要がある場合は、元の画像をコピーして再割り当てしてください$Image
- IF($Type!=1){
- Copy($Image,Str_Replace(".","_x.",$Image));
- $Image=Str_Replace(".","_x.",$ Image);
- }
#ファイルの種類を取得し、異なる種類に応じて異なるオブジェクトを作成します
- $ImgInfo=GetImageSize($Image);
- Switch($ImgInfo[2]){
- Case1 :
- $Img =@ImageCreateFromGIF($Image);
- ブレーク;
- ケース 2:
- $Img =@ImageCreateFromJPEG($Image);
- ブレーク;
- ケース 3:
- $Img =@ImageCreateFromPNG($Image);
- ブレーク;
- }< ;/p>
#オブジェクトが正常に作成されなかった場合は、画像ファイルではないことを意味します
- IF(Empty($Img)){
- #サムネイルの生成時にエラーが発生した場合は、コピーしたファイルを削除する必要があります
- IF($Type!=1){Unlink($Image);}
- ReturnFalse;
- }
#サイズ変更操作が実行された場合、
- IF($ Type==1){
- $w=ImagesX($Img);
- $h=ImagesY($Img);
- $width = $w;
- $height = $h;
- IF($width>$Dw){
- $Par=$Dw /$width;
- $width=$Dw;
- $height=$height*$Par;
- IF($height>$Dh){
- $Par=$Dh/$height;
- $height =$Dh;
- $ width=$width*$Par;
- }
- }ElseIF($height>$Dh){
- $Par=$Dh/$height;
- $height=$Dh;
- $width=$width *$Par;
- IF ($width>$Dw){
- $Par=$Dw/$width;
- $width=$Dw;
- $height=$height*$Par;
- }
- }Else{
- $width =$width;
- $ height=$height;
- }
- $nImg =ImageCreateTrueColor($width,$height); #新しいトゥルー カラー キャンバスを作成します
- ImageCopyReSampled($nImg,$Img,0,0,0,0, $width,$height,$ w,$h); #画像のコピー部分をリサンプルしてサイズ変更します
- ImageJpeg($nImg,$Image) #画像をブラウザまたはJPEG形式で出力します
- ReturnTrue;
- #サムネイル生成操作を実行している場合は、
- }Else{
- $w=ImagesX($Img);
- $h=ImagesY($Img);
- $width = $w;
- $height = $h;< /p>
$nImg =ImageCreateTrueColor($Dw,$Dh);
- IF($h/$w>$Dh/$Dw){#高さが大きくなります
- $width=$Dw;
- $height =$h*$Dw/$w;
- $IntNH=$height-$Dh;
- ImageCopyReSampled($nImg, $Img,0,-$IntNH/1.8,0,0, $Dw, $height, $w, $h);
- }Else{ #Width 比較的大きい
- $height=$Dh;
- $width=$w*$Dh/$h;
- $IntNW=$width-$Dw;
- ImageCopyReSampled($nImg, $Img ,-$IntNW/1.8,0,0 ,0, $width, $Dh, $w, $h);
- }
- ImageJpeg($nImg,$Image);
- ReturnTrue;
- }
- }
- ?>< ;/p>
-
コードをコピー
2. 電話の例
声明:この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。 |