PHPのimagecrop()関数で画像を指定した矩形領域にトリミングする方法
imagecrop()関数とは
imagecrop()は、PHPに組み込まれている関数で、画像を指定した矩形領域にトリミングするために使用されます。指定された矩形領域から画像を切り取り、出力画像を返します。なお、元の画像リソース自体は変更されません。
構文
resource imagecrop ($image, $rect)
パラメータ
imagecrop()は、$imageと$rectの2つのパラメータを受け取ります。
$image − imagecreatetruecolor()やimagecreatefrompng()などの画像作成関数によって返される画像リソースです。処理対象の画像を指定します。
$rect − トリミングする矩形領域を、x、y、width、heightのキーを持つ配列で指定します。
戻り値
imagecrop()は、成功した場合はトリミングされた画像リソースを返し、失敗した場合はfalseを返します。
使用例
<?php
// 指定された画像ファイルから画像を作成します
$img = imagecreatefrompng('C:\xampp\htdocs\Images\img34.png');
// 画像のサイズを取得します
$size = min(imagesx($img), imagesy($img));
// トリミング後の画像サイズを設定します
$img2 = imagecrop($img, ['x' => 0, 'y' => 0, 'width' => 500, 'height' => 320]);
if($img2 !== FALSE) {
imagepng($img2, 'C:\xampp\htdocs\pic_cropped.png');
imagedestroy($img2);
}
imagedestroy($img);
?>
出力結果
imagecrop()関数を使用する前の入力画像

imagecrop()関数を使用した後の出力画像

使用例2
<?php
// ローカルドライブのフォルダから画像を読み込みます
$filename = 'C:\xampp\htdocs\Images\img34.png';
$img = imagecreatefrompng($filename);
$ini_x_size = getimagesize($filename)[0];
$ini_y_size = getimagesize($filename)[1];
// トリミングするx方向とy方向の長さの最小値を取得します
$crop_measure = min($ini_x_size, $ini_y_size);
// コンテンツタイプヘッダーを設定します
//header('Content-Type: image/png');
$crop_array = array('x' => 0, 'y' => 0, 'width' => $crop_measure, 'height' => $crop_measure);
$thumb_img = imagecrop($img, $crop_array);
imagejpeg($thumb_img, 'thumb.png', 100);
?>
出力結果

補足・注意点
- imagecrop()関数を使用するには、PHPでGDライブラリが有効になっている必要があります。php.iniの「extension=gd」が有効化されているか確認してください。
- $rect配列のキーはx、y、width、heightである必要があります。必要なキーが不足している場合はfalseが返されます。
- トリミング後も元の画像リソースは変更されないため、不要になったリソースはimagedestroy()で解放し、メモリを適切に管理することを推奨します。
- 正方形のサムネイルを作成する場合は、使用例2のように画像の幅と高さの小さい方の値をトリミングサイズとして指定すると便利です。
-
PHPのimagecreatefrompng()関数でPNGファイルやURLから新しい画像を作成する方法
PHPのimagecreatefrompng()は、標準で用意されている組み込み関数のひとつで、PNGファイルまたはURLから新しい画像を作成します。指定されたファイル名から取得した画像を表す「画像リソース識別子」を返します。なお、この関数を利用するには、PHP環境にGDライブラリが組み込まれている必要があります。構文resource imagecreatefrompng(string $filename)パラメータimagecreatefrompng()が受け取るパラメータは$filenameのひとつだけです。この引数には、読み込みたいPNG画像のファイル名、または画像へのパス(URL)を指
-
PHPのimagecreatefromjpeg()関数でJPEGファイルから新しい画像を作成する方法
imagecreatefromjpeg()は、PHPに組み込まれている関数の一つで、JPEGファイルから新しい画像を生成するために使用されます。指定したファイル名から取得した画像を表す画像リソース識別子(イメージID)を返します。この関数は、GDライブラリが有効になっている環境で動作し、JPEG画像の読み込み、編集、再保存など、さまざまな画像処理の起点としてよく利用されます。構文resource imagecreatefromjpeg(string $filename)パラメータimagecreatefromjpeg()が受け取るパラメータは$filenameの1つだけです。ここには、読み込む