[ コード例 ]
<?php
$fnm_a = $argv[1];
$fnm_b = $argv[2];
$fnm_new = $argv[3];
$mrglocation = $argv[4];
$PADDING = isset($argv[5]) ? $argv[5] : 12;
$fnm_a = str_replace("^", " ", $fnm_a);
$fnm_b = str_replace("^", " ", $fnm_b);
$fnm_new = str_replace("^", " ", $fnm_new);
list($a_width, $a_height, $type_a) = getimagesize($fnm_a);
list($b_width, $b_height, $type_b) = getimagesize($fnm_b);
switch ($type_a) {
case IMAGETYPE_JPEG:
$image_a = imagecreatefromjpeg($fnm_a);
break;
case IMAGETYPE_PNG:
$image_a = imagecreatefrompng($fnm_a);
break;
case IMAGETYPE_GIF:
$image_a = imagecreatefromgif($fnm_a);
break;
}
switch ($type_b) {
case IMAGETYPE_JPEG:
$image_b = imagecreatefromjpeg($fnm_b);
break;
case IMAGETYPE_PNG:
$image_b = imagecreatefrompng($fnm_b);
break;
case IMAGETYPE_GIF:
$image_b = imagecreatefromgif($fnm_b);
break;
}
switch ($mrglocation) {
case "NW":
imagecopy($image_a, $image_b, $PADDING, $PADDING, 0, 0, $b_width, $b_height);
break;
case "NE":
imagecopy($image_a, $image_b, $a_width - $b_width - $PADDING, $PADDING, 0, 0, $b_width, $b_height);
break;
case "SE":
imagecopy($image_a, $image_b, $a_width - $b_width - $PADDING, $a_height - $b_height - $PADDING, 0, 0, $b_width, $b_height);
break;
case "SW":
imagecopy($image_a, $image_b, 12, $a_height - $b_height - $PADDING, 0, 0, $b_width, $b_height);
break;
case "N":
imagecopy($image_a, $image_b, $a_width / 2 - $b_width / 2, $PADDING, 0, 0, $b_width, $b_height);
break;
case "S":
imagecopy($image_a, $image_b, $a_width / 2 - $b_width / 2, $a_height - $b_height - $PADDING, 0, 0, $b_width, $b_height);
break;
case "E":
imagecopy($image_a, $image_b, $a_width - $b_width - $PADDING, $a_height / 2 - $PADDING / 2, 0, 0, $b_width, $b_height);
break;
case "W":
imagecopy($image_a, $image_b, $PADDING, $a_height / 2 - $PADDING / 2, 0, 0, $b_width, $b_height);
break;
case "C":
imagecopy($image_a, $image_b, $a_width / 2 - $b_width / 2, $a_height / 2 - $b_height / 2, 0, 0, $b_width, $b_height);
break;
}
$filepath = pathinfo($fnm_new);
$ext = mb_strtolower($filepath['extension']);
$res = 1;
try {
if ($ext === "jpg" || $ext === "jpeg") {
imagejpeg($image_a, $fnm_new, 100);
}
else if ($ext === "png") {
imagepng($image_a, $fnm_new, 9);
}
else if ($ext === "gif") {
imagegif($$image_a, $fnm_new, 100);
}
}
catch (Exception $ex) {
$res = 0;
}
imagedestroy($image_a);
imagedestroy($image_b);
$responce = [];
$responce["Result"] = $res;
echo json_encode($responce);
?>
[ 利用例 ]
Aファイル (背景)

Bファイル (パネル)

合成結果 NE パディング指定あり

合成結果 SE

合成結果 SW

合成結果 NW

合成結果 S

コメントを投稿するにはログインしてください。