画像処理は、Web開発において非常に一般的な要件です。バックエンド言語として、PHPは画像のさまざまな操作をサポートする強力なGDライブラリを提供します。この記事では、PHPの内蔵ImageFlip関数を使用して画像をひっくり返し、圧縮技術を組み合わせて画像ファイルのサイズを効果的に削減する方法を紹介します。
ImageFlipは、画像リソースをひっくり返すために使用されるPHP 5.5.0以上で導入された関数です。水平フリップ、垂直フリップ、および同時に水平および垂直のフリップをサポートします。
関数プロトタイプ:
bool imageflip ( resource $image , int $mode )
$画像:フリップする必要がある画像リソース。
$モード:フリップモード、オプション値:
IMG_FLIP_HORIZONTAL (水平フリップ)
img_flip_vertical (垂直フリップ)
IMG_FLIP_BOTH (同時に水平および垂直に逆転)
input.jpgという画像があり、次のことが画像を水平に反転する方法を示しているとします。
<?php
// 1. 画像ファイルを読む
$imagePath = 'input.jpg';
$image = imagecreatefromjpeg($imagePath);
if (!$image) {
die('写真をロードできません');
}
// 2. 使用 imageflip 画像をひっくり返します(水平フリップ)
if (!imageflip($image, IMG_FLIP_HORIZONTAL)) {
imagedestroy($image);
die('画像フリップが失敗しました');
}
// 3. 反転した画像を保存します
$outputPath = 'flipped.jpg';
if (!imagejpeg($image, $outputPath)) {
imagedestroy($image);
die('画像を保存できませんでした');
}
// 4. 無料のリソース
imagedestroy($image);
echo "写真が正常にフリップします,ASとして保存されています:{$outputPath}";
?>
PHPのImageJPeg関数は、0(最悪の品質、最小ファイル)から100(最高品質、最大ファイル)の範囲の圧縮品質の設定をサポートします。圧縮品質の適切な調整は、良好な視覚効果を維持しながら、画像のサイズを効果的に減らすことができます。
上記のコードで保存された部品を変更します。
// 圧縮品質をに設定します 75
$quality = 75;
if (!imagejpeg($image, $outputPath, $quality)) {
imagedestroy($image);
die('画像を保存できませんでした');
}
これは、画像の読みを示す包括的な例を示し、水平にひっくり返され、圧縮され、保存された後です。
<?php
$imagePath = 'input.jpg';
$outputPath = 'flipped_compressed.jpg';
// 1. 画像のロード
$image = imagecreatefromjpeg($imagePath);
if (!$image) {
die('写真をロードできません');
}
// 2. 画像をひっくり返します(垂直フリップの例)
if (!imageflip($image, IMG_FLIP_VERTICAL)) {
imagedestroy($image);
die('画像フリップが失敗しました');
}
// 3. 圧縮品質を設定して画像を保存します
$quality = 70; // 要件に応じて調整できます
if (!imagejpeg($image, $outputPath, $quality)) {
imagedestroy($image);
die('画像を保存できませんでした');
}
// 4. 無料のリソース
imagedestroy($image);
echo "画像は正常に反転し、圧縮されています,パスを保存します:{$outputPath}";
?>
ImageFlip関数を使用すると、画像の水平、垂直、または双方向のフリップをすばやく実現できます。
ImageJPEG関数の3番目のパラメーターを介して、出力JPEG画像の圧縮品質を制御して、ファイルサイズを縮小できます。
圧縮品質を合理的に調整すると、画像の視覚効果を維持し、ウェブサイトの読み込み速度を改善しながら、ファイルサイズを大幅に削減できます。
PHP画像処理チュートリアルの詳細については、 https://gitbox.net/tutorials/php-image-processingをご覧ください