現在の位置: ホーム> 最新記事一覧> ImageGetClipを使用してWebp形式の画像をトリミングする方法

ImageGetClipを使用してWebp形式の画像をトリミングする方法

gitbox 2025-05-27

ImageGetClip関数は何ですか?

ImageGetClipは、PHP GDライブラリの関数であり、画像から指定された領域のトリミングされた断片を取得します。作物領域の開始座標と幅と高さを設定することにより、画像の一部をキャプチャできます。

ただし、公式PHPドキュメントにはImageGetClip関数がないことに注意する必要があります。この名前は、ユーザー定義の関数またはサードパーティライブラリで提供される関数である場合があります。この記事では、PHP GDライブラリの標準関数イメージクロップを組み合わせて、特にWebP形式の画像トリミング用に同様のImageGetClip関数をシミュレートして実装します。


Webp形式の画像のトリミングの準備

PHPは、バージョン7.0以降WebP形式の画像の処理をサポートしていますが、GDライブラリがWebPサポートを有効にすることを保証する必要があります。

GDライブラリがWebpをサポートしているかどうかを確認するコードの例:

 <?php
if (imagetypes() & IMG_WEBP) {
    echo "GD図書館のサポートWebPフォーマット画像";
} else {
    echo "GD図書館はそれをサポートしていませんWebPフォーマット画像";
}
?>

画像機能を使用してWebP画像をトリミングします

以下は、WebP形式で画像のトリミングの完全な例です。コードは、シミュレートされたImageGetClip関数によって画像のトリミングを実装します。

 <?php
// 読むWebP画像
$src = imagecreatefromwebp("https://gitbox.net/images/sample.webp");

// 作物領域の出発点と幅と高さを定義する
$x = 50;  // 出発点x座標
$y = 50;  // 出発点y座標
$width = 200;  // 作物幅
$height = 150; // トリミングの高さ

// 作物パラメーター
$crop_rect = [
    'x' => $x,
    'y' => $y,
    'width' => $width,
    'height' => $height,
];

// 作物操作を実行します
$cropped_image = imagecrop($src, $crop_rect);

if ($cropped_image !== FALSE) {
    // 输出裁剪后的画像到浏览器
    header('Content-Type: image/webp');
    imagewebp($cropped_image);
    imagedestroy($cropped_image);
} else {
    echo "トリミングが失敗しました";
}

imagedestroy($src);
?>

カスタムImageGetClip関数の実装

ImageGetClipの形でトリミングを呼び出したい場合は、次のカスタム関数でラップできます。

 <?php
function imagegetclip($image, $x, $y, $width, $height) {
    $crop_rect = [
        'x' => $x,
        'y' => $y,
        'width' => $width,
        'height' => $height,
    ];
    return imagecrop($image, $crop_rect);
}

// 使用の例
$src = imagecreatefromwebp("https://gitbox.net/images/sample.webp");
$clip = imagegetclip($src, 50, 50, 200, 150);

if ($clip !== FALSE) {
    header('Content-Type: image/webp');
    imagewebp($clip);
    imagedestroy($clip);
} else {
    echo "トリミングが失敗しました";
}

imagedestroy($src);
?>

要約します

  1. PHPに組み込まれたGDライブラリは、WebP形式の画像の読み書き操作をサポートしており、GDライブラリがWebPサポートを有効にすることを保証します。

  2. ImageCrop関数は、画像をトリミングするための標準的な方法であり、WebP画像のトリミングに使用できます。

  3. ImageCrop関数をカプセル化することにより、カスタムImageGetClip関数を作成できます。これは繰り返し呼び出しやすいです。

  4. 収穫時には、画像の境界を超えないように、収穫面積パラメーターを合理的に設定する必要があります。

上記の方法を習得することにより、さまざまな画像処理のニーズを満たすために、WebP形式の画像のトリミング操作を簡単に実現できます。