画像のサイズの変更は非常に一般的な機能要件です。PHP で画像のサイズを変更する方法を勉強してみましょう。まずは私が書いた関数を紹介します。
リーリーimagecopyresampled -- 画像の一部を再サンプリングしてサイズ変更します。
int imagecopyresampled (リソース dst_im, リソース src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)
imagecopyresampled() は、ある画像から別の画像に正方形の領域をコピーし、ピクセル値をスムーズに補間することで、とりわけ、優れた鮮明さを維持しながら画像のサイズを縮小します。 dst_im と src_im は、それぞれターゲット イメージとソース イメージの識別子です。ソースとデスティネーションの幅と高さが異なる場合、画像はそれに応じて縮小または伸縮します。座標は左上隅を指します。この関数は、同じイメージ内の領域をコピーするために使用できます (dst_im と src_im が同じ場合) が、領域が重なっている場合の結果は予測できません。
注: パレット画像の制限 (255+1 色) により問題が発生します。画像のリサンプリングまたはフィルタリングには 255 を超える色が必要になることが多く、新しいリサンプリングされたピクセルとその色の計算には近似値が使用されます。パレット画像に新しい色を割り当てようとするときに、それが失敗した場合は、(理論的に) 計算された最も近い色が選択されます。これは必ずしも視覚的に最も近い色であるとは限りません。これにより、空白 (または視覚的に空白) の画像など、奇妙な結果が生じる可能性があります。この問題を回避するには、imagecreatetruecolor() で作成されたものなど、トゥルーカラー イメージをターゲット イメージとして使用します。
注: imagecopyresampled() には GD 2.0.l 以降が必要です。
簡単な例:
リーリー例 2:
リーリー画像サイズを変更するには2つの方法があります:
2 つの関数のパラメータは次のように同じです:
リーリー例:
れーれー