ホームページ  >  記事  >  バックエンド開発  >  PHP は GD ライブラリを使用して高品質のサムネイル画像のサンプル コードを生成します

PHP は GD ライブラリを使用して高品質のサムネイル画像のサンプル コードを生成します

怪我咯
怪我咯オリジナル
2017-07-12 15:07:221401ブラウズ

ウェブサイトでは、GD ライブラリは通常、サムネイルを生成したり、画像に透かしを追加したり、漢字検証コードを生成したり、ウェブサイトデータに関するレポートを生成したりするために使用されます。 PHP で画像を処理するには、GD ライブラリを使用できます。GD ライブラリは当初 GIF をサポートしていましたが、GIF は著作権の議論のある LZW アルゴリズムを使用していたため、法的問題が発生する可能性があるため、すべての GIF サポートは GD ライブラリ バージョン 1.6 から移行されました。ただし、GD ライブラリ バージョン 2.0.28 で追加されました。この 2 つの中間のバージョンの GD ライブラリを使用する場合、GIF 関連の 関数 は使用できません。この記事では、GDライブラリを使用してPHPで高画質なサムネイル画像を生成するサンプルコードを中心に紹介します

以下はPHPのソースコード(ResizeImage.php)です。

<?php 
$FILENAME="image.thumb"; 
// 生成图片的宽度 
$RESIZEWIDTH=400; 
// 生成图片的高度 
$RESIZEHEIGHT=400; 

function ResizeImage($im,$maxwidth,$maxheight,$name){ 
$width = imagesx($im); 
$height = imagesy($im); 
if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){ 
if($maxwidth && $width > $maxwidth){ 
$widthratio = $maxwidth/$width; 
$RESIZEWIDTH=true; 
} 
if($maxheight && $height > $maxheight){ 
$heightratio = $maxheight/$height; 
$RESIZEHEIGHT=true; 
} 
if($RESIZEWIDTH && $RESIZEHEIGHT){ 
if($widthratio < $heightratio){ 
$ratio = $widthratio; 
}else{ 
$ratio = $heightratio; 
} 
}elseif($RESIZEWIDTH){ 
$ratio = $widthratio; 
}elseif($RESIZEHEIGHT){ 
$ratio = $heightratio; 
} 
$newwidth = $width * $ratio; 
$newheight = $height * $ratio; 
if(function_exists("imagecopyresampled")){ 
$newim = imagecreatetruecolor($newwidth, $newheight); 
imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 
}else{ 
$newim = imagecreate($newwidth, $newheight); 
imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 
} 
ImageJpeg ($newim,$name . ".jpg"); 
ImageDestroy ($newim); 
}else{ 
ImageJpeg ($im,$name . ".jpg"); 
} 
} 

if($_FILES[&#39;image&#39;][&#39;size&#39;]){ 
if($_FILES[&#39;image&#39;][&#39;type&#39;] == "image/pjpeg"){ 
$im = imagecreatefromjpeg($_FILES[&#39;image&#39;][&#39;tmp_name&#39;]); 
}elseif($_FILES[&#39;image&#39;][&#39;type&#39;] == "image/x-png"){ 
$im = imagecreatefrompng($_FILES[&#39;image&#39;][&#39;tmp_name&#39;]); 
}elseif($_FILES[&#39;image&#39;][&#39;type&#39;] == "image/gif"){ 
$im = imagecreatefromgif($_FILES[&#39;image&#39;][&#39;tmp_name&#39;]); 
} 
if($im){ 
if(file_exists("$FILENAME.jpg")){ 
unlink("$FILENAME.jpg"); 
} 
ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME); 
ImageDestroy ($im); 
} 
} 
?>

以下はテストコード(demo.php)ですコードは以下の通りです:

<?php 
include(&#39;ResizeImage.php&#39;); 
if(!empty($_POST)){ 
echo($FILENAME.".jpg?cache=".rand(0,999999)); 
} 
?> 
<form name="test" action="?submit=true" enctype="multipart/form-data" method="post" > 
<input type="file" name="image" size="50" value="浏览"><p> 
<input type="submit" value="上传图片"> 
</form>


以上がPHP は GD ライブラリを使用して高品質のサムネイル画像のサンプル コードを生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。