ImageGetClipは、PHP GDライブラリの関数であり、画像から指定された領域のトリミングされた断片を取得します。作物領域の開始座標と幅と高さを設定することにより、画像の一部をキャプチャできます。
ただし、公式PHPドキュメントにはImageGetClip関数がないことに注意する必要があります。この名前は、ユーザー定義の関数またはサードパーティライブラリで提供される関数である場合があります。この記事では、PHP GDライブラリの標準関数イメージクロップを組み合わせて、特にWebP形式の画像トリミング用に同様のImageGetClip関数をシミュレートして実装します。
PHPは、バージョン7.0以降WebP形式の画像の処理をサポートしていますが、GDライブラリがWebPサポートを有効にすることを保証する必要があります。
GDライブラリがWebpをサポートしているかどうかを確認するコードの例:
<?php
if (imagetypes() & IMG_WEBP) {
echo "GD図書館のサポートWebPフォーマット画像";
} else {
echo "GD図書館はそれをサポートしていません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の形でトリミングを呼び出したい場合は、次のカスタム関数でラップできます。
<?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);
?>
PHPに組み込まれたGDライブラリは、WebP形式の画像の読み書き操作をサポートしており、GDライブラリがWebPサポートを有効にすることを保証します。
ImageCrop関数は、画像をトリミングするための標準的な方法であり、WebP画像のトリミングに使用できます。
ImageCrop関数をカプセル化することにより、カスタムImageGetClip関数を作成できます。これは繰り返し呼び出しやすいです。
収穫時には、画像の境界を超えないように、収穫面積パラメーターを合理的に設定する必要があります。
上記の方法を習得することにより、さまざまな画像処理のニーズを満たすために、WebP形式の画像のトリミング操作を簡単に実現できます。