PHP には、アップロードされた画像を圧縮する方法がいくつかあります。
1 つの方法は、PHP で最も一般的に使用されるグラフィック ライブラリの 1 つである GD ライブラリを使用することです。アップロードした画像はGDライブラリの機能を利用して圧縮やリサイズが可能です。以下は、GD ライブラリを使用した画像圧縮の例です。
// 获取上传的图片
$uploadedImage = $_FILES['image']['tmp_name'];
// 创建一个新的图片资源
$image = imagecreatefromjpeg($uploadedImage);
// 压缩图片为指定的宽度和高度
$width = 800;
$height = 600;
$newImage = imagecreatetruecolor($width, $height);
imagecopyresampled($newImage, $image, 0, 0, 0, 0, $width, $height, imagesx($image), imagesy($image));
// 保存压缩后的图片
$compressedImagePath = 'path/to/save/compressed_image.jpg';
imagejpeg($newImage, $compressedImagePath);
// 释放资源
imagedestroy($newImage);
imagedestroy($image);
echo "图片已压缩并保存为 {
$compressedImagePath}";
もう 1 つの方法は、Intervention Image などのサードパーティ ライブラリを使用することです。画像を処理および操作するためのより多くの機能とオプションが提供されます。Composer パッケージ マネージャーを使用してインストールできます。
composer.json
まず、プロジェクトのルート ディレクトリに次の内容のファイルを作成します。
{
"require": {
"intervention/image": "^2.5"
}
}
次に、composer install
コマンドを実行してライブラリをインストールします。
以下は、Intervention Image を使用した画像圧縮の例です。
require 'vendor/autoload.php';
use Intervention\Image\ImageManagerStatic as Image;
// 获取上传的图片
$uploadedImage = $_FILES['image']['tmp_name'];
// 压缩图片为指定的宽度和高度
$width = 800;
$height = 600;
$compressedImage = Image::make($uploadedImage)->resize($width, $height);
// 保存压缩后的图片
$compressedImagePath = 'path/to/save/compressed_image.jpg';
$compressedImage->save($compressedImagePath);
echo "图片已压缩并保存为 {
$compressedImagePath}";
上記は、PHP で画像を圧縮する 2 つの一般的な方法であり、ニーズに応じていずれかを選択できます。