PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのimagecropauto()関数で画像を自動的に切り抜く方法を徹底解説

imagecropauto()は、PHPに標準で組み込まれている関数の一つで、用意された複数のモードの中から選択して、画像を自動的に切り抜き(クロップ)することができます。

構文

resource imagecropauto(resource $image, int $mode, float $threshold, int $color)

パラメータ

imagecropauto()は、$image$mode$threshold$color の4つのパラメータを受け取ります。

  • $image − 切り抜き対象となる画像リソースを指定します。

  • $mode − 省略可能なパラメータで、切り抜きモードに対応する整数値を指定します。指定できるモードは以下の通りです。

    • IMG_CROP_DEFAULTIMG_CROP_TRANSPARENTモードと同じ動作を行います。

    • IMG_CROP_TRANSPARENT − 透明な背景を切り抜くためのモードです。

    • IMG_CROP_BLACK − 黒い背景を切り抜くためのモードです。

    • IMG_CROP_WHITE − 白い背景を切り抜くためのモードです。

    • IMG_CROP_SIDES − 画像の四隅の色をもとに背景色を検出し、その背景を切り抜くモードです。

    • IMG_CROP_THRESHOLD − 指定したしきい値(threshold)と色(color)に基づいて画像を切り抜くモードです。

  • $threshold − 省略可能なパラメータで、画像の色と切り抜き対象の色を比較する際の許容誤差をパーセントで指定します。

  • $color − 省略可能なパラメータで、RGB(赤・緑・青)によるカラー値、またはパレットインデックスを指定します。

戻り値

imagecropauto()は、処理が成功した場合は切り抜かれた画像リソースを返し、失敗した場合はfalseを返します。また、画像全体が切り抜き対象となった場合にもfalseが返される点に注意してください。

使用例1

<?php
   // ローカルドライブのフォルダからJPEG画像を読み込む
   $img = imagecreatefromjpeg('C:\xampp\htdocs\Images\img33.jpg');

   // 画像の余分な白い領域を切り抜く
   $cropped = imagecropauto($img, IMG_CROP_WHITE);

   // GIFファイルとして出力する
   header('Content-type: image/gif');
   imagepng($cropped);
?>

実行結果

IMG_CROP_WHITEモードを適用する前:周囲に白い余白がある状態の画像

PHPのimagecropauto()関数で画像を自動的に切り抜く方法を徹底解説

IMG_CROP_WHITEモードを適用した後:白い余白が切り抜かれた画像

PHPのimagecropauto()関数で画像を自動的に切り抜く方法を徹底解説

補足

このように、imagecropauto()ではモードの指定を変えるだけで、さまざまな条件で画像を切り抜くことができます。たとえばIMG_CROP_BLACKを指定すれば、画像の黒い背景部分を自動的に切り抜くことが可能です。用途に応じて最適なモードを選択しましょう。

  1. PHPのimagecreatefromwbmp()関数でWBMPファイルやURLから新しい画像を作成する方法

    PHPには、WBMPファイルまたはURLから新しい画像を作成するための組み込み関数 imagecreatefromwbmp() が用意されています。この関数は、指定されたファイル名から取得した画像を表す画像リソース識別子を返します。WBMPファイルから画像を読み込んだ後に編集したい場合などに活用できる便利な関数です。また、imagewbmp() 関数を使えば、画像をWBMP形式へ変換して保存することも可能です。 構文 resource imagecreatefromwbmp(string $filename) パラメータ imagecreatefromwbmp() が受け取るパラメータは $f

  2. PHPのimageflip()関数の使い方とサンプルコード

    imageflip()関数は、指定されたモードに従って画像を反転させるために使用されるPHPの組み込み関数です。水平方向、垂直方向、あるいはその両方への反転が可能で、画像処理を行う際に非常に便利な機能です。 構文 bool imageflip(img, mode) パラメータ img: imagecreatetruecolor()などの画像作成関数によって生成された画像リソースを指定します。 mode: 反転のモードを指定します。指定できる値は以下の3種類です。 modeに指定できる値 IMG_FLIP_HORIZONTAL:画像を水平方向(左右)に反転します。 IMG_FLIP_VER