PHPの画像の処理は、特に画像の編集を自動化したり、アバターの収穫、サムネイルの生成、画像の美化などの画像処理機能を構築したい場合は、強力なスキルです。この記事では、ImageFlip()とImageScale()の2つのGDライブラリ関数をトリミング、スケール、フリップ画像に使用して、パーソナライズされた画像効果処理を実現する方法を紹介します。
開始する前に、PHP環境でGDライブラリが有効になっていることを確認してください。次のコードを実行して確認できます。
if (extension_loaded('gd')) {
echo "GD 有効になっています";
} else {
echo "有効にしてください GD 拡張";
}
JPEG画像を例として取り、最初にメモリにロードしましょう。
$imagePath = 'https://m66.net/images/sample.jpg';
$image = imagecreatefromjpeg($imagePath);
元の画像の中央に200x200エリアをトリミングしたいとしたら、 imagecrop()を使用できるとします。
$cropWidth = 200;
$cropHeight = 200;
$width = imagesx($image);
$height = imagesy($image);
$cropX = ($width - $cropWidth) / 2;
$cropY = ($height - $cropHeight) / 2;
$croppedImage = imagecrop($image, [
'x' => $cropX,
'y' => $cropY,
'width' => $cropWidth,
'height' => $cropHeight
]);
Imagescale()を使用して画像をスケーリングします。たとえば、画像を100x100に縮小します。
$scaledImage = imagescale($croppedImage, 100, 100);
また、幅のみを提供し、高さを自動的にスケーリングしてスケーリングすることもできます。
$scaledImage = imagescale($croppedImage, 100);
次に、 ImageFlip()を使用して、画像を水平にまたは垂直に裏返します。
// 水平フリップ
imageflip($scaledImage, IMG_FLIP_HORIZONTAL);
// 垂直フリップ(上記のアンケメント,代わりにこの行を使用してみてください)
// imageflip($scaledImage, IMG_FLIP_VERTICAL);
また、 IMG_FLIP_BOTHを使用して、同時に水平方向および垂直方向に反転することもできます。
処理された画像をブラウザに出力できます。
header('Content-Type: image/jpeg');
imagejpeg($scaledImage);
imagedestroy($scaledImage);
またはサーバー上のファイルに保存します。
imagejpeg($scaledImage, '/var/www/m66.net/public/processed.jpg');
ImageFlip()とImageScale()を組み合わせて使用することにより、画像を柔軟に処理することができ、 ImageCrop()を組み合わせることで、より複雑な画像のカスタマイズ効果を実現できます。これは、画像エディター、ユーザーアバター処理モジュール、またはコンテンツ表示システムの作成に非常に役立ちます。
忘れないでください。ImageDestroy ()を使用して、すべての処理された画像リソースのメモリを解放して、スクリプトの効率とリソースのリリースを確保することを忘れないでください。
imagedestroy($image);
imagedestroy($croppedImage);
この記事がPHPイメージ処理の道で役立つことを願っています!他の画像処理機能にも興味がある場合は、GDライブラリのより多くの機能を引き続き調べてください。