ホームページ  >  記事  >  バックエンド開発  >  PHPの画像効果処理関数の使い方入門

PHPの画像効果処理関数の使い方入門

PHPz
PHPzオリジナル
2023-06-15 20:48:331085ブラウズ

PHP はスクリプト言語として、画像処理関数の豊富なライブラリを備えており、拡大縮小、切り取り、透かし、フィルターなどの画像に対するさまざまな処理操作を簡単に実行でき、さまざまな形式の画像をサポートしています。

この記事では、PHP で一般的に使用される画像処理関数を紹介し、実践的なアプリケーション シナリオとサンプル コードを提供します。

1. ズームとクロップ

画像処理ではズームとクロップが一般的ですが、以下ではそれに対応するPHPの画像処理関数を詳しく紹介します。

  1. Scale

imagecopyresize() は、PHP で最も一般的に使用されるスケーリング関数で、元の画像のアスペクト比を維持しながら画像のサイズを変更できます。

この関数の構文は次のとおりです。

bool imagecopyresize ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $ dst_w 、 int $ dst_h 、 int $src_w 、 int $src_h )

パラメータの説明:

  • $dst_image はターゲット画像リソースであり、
  • $src_image はターゲット画像リソースです。ソース画像リソース;
  • $dst_x と $dst_y はターゲット画像リソースの左上隅の座標位置です;
  • $src_x と $src_y は左上隅の座標位置ですソース画像リソースの
  • $dst_w と $dst_h は宛先画像の幅と高さ、
  • $src_w と $src_h はソース画像の幅と高さです。

次は、画像をスケーリングするためのコード例です:

$src_image = imagecreatefrompng('origin.png');
$dst_image = imagecreatetruecolor (300, 300);
$src_w = imagex($src_image);//ソース画像の幅を取得します
$src_h = imagey($src_image);//ソース画像の高さを取得します
$ dst_w = 300;
$dst_h = 300;
imagecopyresize($dst_image, $src_image, 0, 0, 0, 0, $dst_w, $dst_h, $src_w, $src_h);
imagepng($ dst_image, 'resize .png');
imagedestroy($src_image);
imagedestroy($dst_image);
?>

  1. Crop

imagecopyresampled() は、PHP でトリミングに使用される関数で、imagecopyresize() と同様の関数ですが、より高品質なスケーリング効果を実現できます。

この関数の構文は次のとおりです。

bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $ dst_w , int $ dst_h , int $src_w , int $src_h )

パラメータの説明は imagecopyresize() と同じです。

次は、画像をトリミングするコード例です:

$src_image = imagecreatefrompng('origin.png');
$dst_image = imagecreatetruecolor( 200, 200);
$src_w = imagex($src_image);//ソース画像の幅を取得します
$src_h = imagey($src_image);//ソース画像の高さを取得します
$dst_w = 200 ;
$dst_h = 200;
$x = 0;
$y = 0;
$src_x = ($src_w-$dst_w)/2;
$src_y = ($src_h -$ dst_h)/2;
imagecopyresampled($dst_image, $src_image, $x, $y, $src_x, $src_y, $dst_w, $dst_h, $dst_w, $dst_h);
imagepng($dst_image , ' Crop.png');
imagedestroy($src_image);
imagedestroy($dst_image);
?>

2.ウォーターマーク

ウォーターマークを追加します画像 これは実際のアプリケーションによく関係するシナリオであり、PHP も対応する機能サポートを提供します。

imagecopy() 関数を使用すると、ある画像を別の画像にオーバーレイして透かし効果を実現できます。

この関数の構文は次のとおりです:

bool imagecopy ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $ src_w , int $ src_h )

パラメータの説明:

  • $dst_image はターゲット画像リソース、
  • $src_image はソース画像リソース、
  • $dst_x と $ dst_y はターゲット画像リソースの左上隅の座標位置です;
  • $src_x と $src_y はソース画像リソースの左上隅の座標位置です;
  • $src_w と $src_h はソース画像です。リソースの幅と高さです。

次はウォーターマークを含むコード例です:

$src_image = imagecreatefrompng('origin.png');
$watermark_image = imagecreatefrompng('watermark.png');
$src_w = imagex($src_image);//ソース画像の幅を取得します
$src_h = imagey($src_image);//ソース画像の高さを取得します
$watermark_w = imagex($watermark_image); // ウォーターマークの幅を取得します
$watermark_h = imagey($watermark_image); // ウォーターマークの高さを取得します
$max_width = $src_w - $watermark_w - 10; // 最大値ウォーターマークの位置が許可されますWidth
$max_height = $src_h - $watermark_h - 10; //ウォーターマークの位置に許可される最大の高さ
$x = rand(10, $max_width); //ランダムに生成されたウォーターマークの横座標ウォーターマーク位置
$ y = rand(10, $max_height); // ウォーターマーク位置の垂直座標をランダムに生成します
imagecopy($src_image, $watermark_image, $x, $y, 0, 0, $watermark_w , $watermark_h);
imagepng($src_image, 'watermarked.png');
imagedestroy($src_image);
imagedestroy($watermark_image);
?>

3. フィルター

PHP は、写真をより興味深く芸術的にするためのさまざまなフィルター効果も提供します。

imagefilter() 関数は、反転、グレースケール、ぼかしなどのさまざまなフィルター効果をサポートしています。詳細については、PHP 公式ドキュメントを参照してください。

以下はフィルター効果を使用したコード例です:

$src_image = imagecreatefrompng('origin.png');
imagefilter($src_image, IMG_FILTER_PIXELATE, 15, true);//モザイク
imagefilter($src_image, IMG_FILTER_CONTRAST , -50);//コントラストを調整
imagepng($src_image, 'filter.png');
imagedestroy($src_image);
?>

上記のコードはモザイクと画像のコントラスト調整。

要約すると、PHP は画像処理における強力なサポートを提供し、機能はシンプルで使いやすく、ほとんどのアプリケーション シナリオのニーズを満たすことができます。よく使われるこれらの画像処理機能を理解することで、Webアプリケーション開発の効率が大幅に向上します。

以上がPHPの画像効果処理関数の使い方入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。