PHP GD 画像切り抜き

< コード例 >


<?php

/**
 * GD 画像 切り抜き
 * argv : 1:元ファイル名, 2:生成ファイル名, 3: 左上X座標, 4: 左上Y座標, 5:幅, 6:高さ  
 */
 
// 引数取得 //
$srcfnm = $argv[1];
$newfnm = $argv[2];
$sx = $argv[3];
$sy = $argv[4];
$w = $argv[5];
$h = $argv[6];

// 元画像サイズ取得 //
list($src_width, $src_height, $type) = getimagesize($srcfnm);

// 対象イメージ格納 //
switch ($type) {
  case IMAGETYPE_JPEG:    // 2
    $srcimg = imagecreatefromjpeg($srcfnm);
    break;
  case IMAGETYPE_PNG:     // 3
    $srcimg = imagecreatefrompng($srcfnm);
    break;
  case IMAGETYPE_GIF:     // 1
    $srcimg = imagecreatefromgif($srcfnm);
    break;
}

// 矩形指定
$rect = array();
$rect['x'] = $sx;
$rect['y'] = $sy;
$rect['width'] = $w;
$rect['height'] = $h;

// 画像を切り抜き
//$im_in = $func_create($srcfnm);
$im_out = imagecrop($srcimg, $rect);

// 結果ファイルに出力 //
$filepath = pathinfo($newfnm);
$ext = mb_strtolower($filepath['extension']);
$res = 1;
try {
  if ($ext === "jpg" || $ext === "jpeg") {
    imagejpeg($im_out, $newfnm, 100);
  }
  else if ($ext === "png") {
    imagepng($im_out, $newfnm, 9);
  }
  else if ($ext === "gif") {
    imagegif($im_out, $newfnm, 100);
  }
}
catch (Exception $ex) {
  $res = 0;
}

// 解放 //
imagedestroy($srcimg);
imagedestroy($im_out);

// 連想配列に格納 //
$responce = [];
$responce["Result"] = $res;

// JSONに変換して結果出力 //
echo json_encode($responce);


?>


[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

独習PHP 第4版 [ 山田 祥寛 ]
価格:3740円(税込、送料無料) (2022/12/26時点)

コメントを残す