PHP 画像処理: imagecopyresampled 関数を使用した画像スケーリングの例、
ウェブサイトの最適化はコードだけに焦点を当てることはできません。コンテンツもウェブサイトの最も重要なオブジェクトの 1 つであり、画像はウェブサイト上で最も重要なコンテンツです。画像を最適化するときに対処する最も重要なことは、Web サイトにアップロードされたすべての大きな画像を自動的に小さな画像 (Web ページに十分なサイズ) に拡大縮小して、ストレージ容量を N 倍に削減し、速度を向上させることです。ダウンロードと閲覧。したがって、画像を動的 Web サイトに拡大縮小するタスクは、多くの場合、ファイルのアップロードに関連付けられており、画像のアップロード中にサイズ変更される可能性があります。もちろん、場合によっては画像のスケーリングを個別に処理する必要があります。たとえば、画像リストを作成するときに、大きな画像を直接使用し、表示されるときにのみ小さな画像にズームすると、ダウンロードが遅くなるだけではありません。速度は向上しますが、ページの応答時間も短縮されます。通常、このようなアプリケーションに遭遇すると、写真をアップロードするときに、リストを作成するために特別に使用される小さなアイコンが写真に合わせて拡大縮小され、この小さなアイコンをクリックすると、大きな写真がダウンロードされて閲覧できます。
GD ライブラリを使用して画像のスケーリングを処理する場合、通常、imagecopyresize() と imagecopyresampled() の 2 つの関数のいずれかを使用します。imagecopyresampled() 関数を使用した後の品質は向上します。ここでは、imagecopyresampled() 関数の使用方法のみを紹介します。この関数のプロトタイプは次のようになります:
コードをコピーします コードは次のとおりです:
bool imagecopyresampled(リソース dst_image,リソース src_image,int dst_x,int dst_y,int src_x,int src_y,int dst_w,int dst_h,int src_w,int src_h)
この機能は、ある画像から別の画像に正方形の領域をコピーし、ピクセル値を滑らかに補間することで、非常に高い解像度を維持しながら画像のサイズを縮小します。成功した場合は TRUE を返し、失敗した場合は FALSE を返します。パラメータ dst_image と src_image は、それぞれターゲット イメージとソース イメージの識別子です。ソースとターゲットの幅と高さが異なる場合、画像はそれに応じて縮小および拡大され、座標は左上隅を参照します。この関数は、同じイメージ内でコピーするために使用できます (dst_image と src_image が同じ場合) が、領域が重なっている場合、結果は予測できません。次の例では、JPEG 画像形式を例として、画像スケーリング関数 summ() を記述します。コードは次のとおりです。
コードをコピーします コードは次のとおりです:
//画像のズームインとズームアウトに使用します
関数つまみ($filename,$width=200,$height=200){
//元画像 $filename の幅 $width_orig と高さ $height_orig を取得します
list($width_orig,$height_orig) = getimagesize($filename);
//パラメータ $width と $height の値に従って、比例して拡大縮小された高さと幅を変換します
If ($width && ($width_orig<$height_orig)){
$width = ($height/$height_orig)*$width_orig;
}その他{
$height = ($width / $width_orig)*$height_orig;
}
//元の画像をこの新しく作成した画像リソースにズームします
$image_p = imagecreatetruecolor($width, $height);
//元画像の画像リソースを取得します
$image = imagecreatefromjpeg($filename);
//imagecopyresampled() 関数を使用してズーム設定を設定します
Imagecopyresampled($image_p,$image,0,0,0,0,$width,$height,$width_orig,$height_orig);
//ズームした画像を保存 $image_p, 100 (最高品質、最大ファイル)
Imagejpeg($image_p,$filename);
Imagedestroy($image_p);
Imagedestroy($image);
}
Thumb("brophp.jpg",100,100);
?>
http://www.bkjia.com/PHPjc/914051.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/914051.html技術記事 PHP の画像処理では、imagecopyresampled 関数を使用して画像のスケーリングの例を実現します。Web サイトの最適化では、コンテンツも最も重要なオブジェクトの 1 つであり、画像は...