PHP を使用してリモート画像を保存するときに画像圧縮を処理するにはどうすればよいですか?
実際の開発では、ネットワークから画像を取得してローカルサーバーに保存する必要があることがよくあります。ただし、一部のリモート画像は大きすぎる場合があるため、ストレージ容量を減らし、読み込み速度を上げるために画像を圧縮する必要があります。 PHP は、画像圧縮を処理するための強力な拡張機能をいくつか提供しています。その中で最もよく使用されるのは、GD ライブラリと Imagick ライブラリです。
GD ライブラリは、画像の作成、編集、保存のための多くの機能を提供する人気のある画像処理ライブラリです。以下は、画像圧縮に GD ライブラリを使用する例です。
function compressImage($url, $newName, $quality = 75) { // 从URL获取图片 $image = file_get_contents($url); // 创建图像资源 $imageRes = imagecreatefromstring($image); // 获取图像信息 $width = imagesx($imageRes); $height = imagesy($imageRes); // 创建新图像资源 $newImageRes = imagecreatetruecolor($width, $height); // 复制并压缩图像 imagecopyresampled($newImageRes, $imageRes, 0, 0, 0, 0, $width, $height, $width, $height); // 保存图像 imagejpeg($newImageRes, $newName, $quality); // 释放资源 imagedestroy($newImageRes); imagedestroy($imageRes); }
上記のコードは、まず file_get_contents
関数を使用して、指定された URL から画像を取得し、それを変数 # に格納します。 ##$画像 真ん中。次に、
imagecreatefromstring 関数を使用して、GD ライブラリに必要な画像リソースに変換します。
imagecreatetruecolor 関数を使用して、元の画像と同じサイズの新しい画像リソースを作成します。
imagecopyresampled 関数を使用して、元の画像を新しい画像リソースにコピーし、圧縮します。ここでの圧縮品質は
$quality パラメーターで指定され、デフォルトは 75 です。
imagejpeg 関数を使用して、圧縮された画像を指定したファイル名
$newName に保存します。
$quality パラメータの値を変更することで圧縮品質を変更できます。値が大きいほど品質は向上し、ファイル サイズは大きくなります。
function compressImage($url, $newName, $quality = 75) { // 实例化Imagick对象 $image = new Imagick($url); // 设置压缩质量 $image->setImageCompressionQuality($quality); // 保存图像 $image->writeImage($newName); // 销毁对象 $image->destroy(); }Imagick ライブラリを使用する場合、まず
new Imagick を通じて Imagick オブジェクトを作成し、リモート イメージの URL を渡します。それをパラメータとして指定します。
setImageCompressionQuality メソッドを使用して圧縮品質を設定します。
writeImage メソッドを使用して圧縮イメージを指定したファイル名
$newName に保存し、
destroy メソッドを使用して破棄します。オブジェクト 。
以上がPHP を使用してリモート画像を保存するときに画像圧縮を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。