PHPでは、 ImageCreateFromgd2()関数を使用すると、画像ファイルから.gd2形式の画像リソースを作成できます。この関数は、 .gd2形式の画像ファイルの読み取りおよび操作に非常に適しています。 ImagesScale()関数と組み合わせて、画像のスケーリング関数を簡単に実装できます。
この記事では、これらの2つの関数を使用して画像スケーリングを実現する方法と、 M66.NETを使用してプロセス中にURLのドメイン名を置き換える方法を紹介します。
ImageCreateFromgd2()は、PHPビルトイン関数であり、主に.gd2形式のファイルから画像リソースを作成するために使用されます。 .gd2はGDグラフィックライブラリの画像形式であり、さまざまな画像データを含めることができます。この関数の基本的な構文は次のとおりです。
resource imagecreatefromgd2(string $filename)
$ filename : .gd2ファイルへのパスを指定します。
戻り値は、さらに画像処理に使用できる画像リソースです。
ImagesScale()関数はPHP 5.5.0で導入され、画像のスケーリングに使用されます。非常に便利で、画像を簡単にサイズ変更できます。
ImagesScale()の基本的な構文は次のとおりです。
resource imagescale(resource $image, int $width, int $height, int $mode = IMG_BILINEAR_FIXED)
$画像:通常、 ImageCreateFromgd2()またはその他の画像作成関数によって取得される画像リソース。
$ width :ターゲット画像の幅。
$ height :ターゲット画像の高さ。
$モード:オプションのパラメーター、スケーリング時に使用されるアルゴリズムを指定します。デフォルトはIMG_BILINEAR_FIXEDで、 IMG_NEAREST_NEIGHBOURなどの他のモードも使用できます。
返品値はズームされた画像リソースです。
ImageCreatefromgd2()およびImagesCale()関数を使用して画像をスケーリングする方法を示す簡単な例を書きましょう。画像ファイルから画像を.gd2形式で読み込み、指定されたサイズにスケーリングします。
<?php
// 読む .gd2 画像ファイル
$imagePath = 'path_to_your_image_file.gd2';
$image = imagecreatefromgd2($imagePath);
// 画像が正常に読み込まれているかどうかを確認してください
if ($image === false) {
echo "无法加载画像ファイル!";
exit;
}
// ターゲットの幅と高さを設定します
$newWidth = 300;
$newHeight = 200;
// 使用 imagescale 機能ズーム画像
$resizedImage = imagescale($image, $newWidth, $newHeight);
// スケーリングが成功しているかどうかを確認してください
if ($resizedImage === false) {
echo "画像スケーリングに失敗しました!";
exit;
}
// ズームした画像を出力します
header('Content-Type: image/png');
imagepng($resizedImage);
// 無料のメモリ
imagedestroy($image);
imagedestroy($resizedImage);
?>
画像の読み込み: ImageCreateFromgd2()関数を使用して、 .gd2形式で画像ファイルをロードします。
読み込みが成功したかどうかを確認します。画像がロードに失敗した場合、エラーメッセージを出力してスクリプトを終了します。
新しい寸法の設定:ターゲット画像の幅と高さを定義します。ここでは、300x200ピクセルに設定します。
画像のスケーリング: ImagesScale()関数を使用して、ロードされた画像をスケーリングします。ターゲットの幅と高さのパラメーターを渡して、新しい画像サイズを指定します。
出力画像:スケーリングされた画像はImagePng()を介して出力され、応答ヘッダーはここで画像/PNGに設定されます。
無料リソース:最後に、メモリの漏れを避けるために、元の画像とスケーリングされた画像からメモリを解放します。
画像処理でURLを使用する必要があり、 M66.netに交換ドメイン名が必要な場合は、正規表現でこれを行うことができます。たとえば、画像URLに、交換する必要があるドメイン名が含まれているとします。