
setImageCompose 메서드는 두 개의 이미지 또는 이미지와 그레이스케일 이미지를 합성하는 데 사용됩니다.
Imagick::COMPOSITE_ATOP 옵션은 위에 있는 이미지에 아래 있는 이미지를 합성하는 방식입니다. 예를 들어, 위에 있는 이미지에 하얀 배경이 있고, 아래에 있는 이미지가 하얀 배경을 가리면, 하얀 배경이 사라집니다.
Imagick::COMPOSITE_OVER 옵션은 위에 있는 이미지에 아래 있는 이미지를 합성하는 방식입니다. 예를 들어, 위에 있는 이미지에 하얀 배경이 있고, 아래에 있는 이미지가 하얀 배경을 덮으면, 하얀 배경은 사라지지 않고 아래에 있는 이미지가 그 위에 나타납니다.
Imagick::COMPOSITE_IN 옵션은 위에 있는 이미지에 아래 있는 이미지를 합성하는 방식입니다. 예를 들어, 위에 있는 이미지에 하얀 배경이 있고, 아래에 있는 이미지가 하얀 배경을 가리면, 하얀 배경은 사라집니다. 하지만, 아래에 있는 이미지가 하얀 배경을 덮지 않는 경우, 하얀 배경은 그대로 유지됩니다.
Imagick::COMPOSITE_OUT 옵션은 위에 있는 이미지에 아래 있는 이미지를 합성하는 방식입니다. 예를 들어, 위에 있는 이미지에 하얀 배경이 있고, 아래에 있는 이미지가 하얀 배경을 덮으면, 하얀 배경은 사라집니다.
Imagick::COMPOSITE_PLUS 옵션은 위에 있는 이미지에 아래 있는 이미지를 합성하는 방식입니다. 예를 들어, 위에 있는 이미지에 하얀 배경이 있고, 아래에 있는 이미지가 하얀 배경을 덮으면, 하얀 배경과 아래에 있는 이미지가 합쳐져 나타납니다.
Imagick::COMPOSITE_MINUS 옵션은 위에 있는 이미지에 아래 있는 이미지를 합성하는 방식입니다. 예를 들어, 위에 있는 이미지에 하얀 배경이 있고, 아래에 있는 이미지가 하얀 배경을 덮으면, 하얀 배경은 사라집니다.
Imagick::COMPOSITE_XOR 옵션은 위에 있는 이미지에 아래 있는 이미지를 합성하는 방식입니다. 예를 들어, 위에 있는 이미지에 하얀 배경이 있고, 아래에 있는 이미지가 하얀 배경을 덮으면, 하얀 배경은 사라집니다. 하지만, 아래에 있는 이미지가 하얀 배경을 덮지 않는 경우, 하얀 배경은 그대로 유지됩니다.
#hostingforum.kr
php
$imagick = new Imagick('image1.png');
$imagick2 = new Imagick('image2.png');
// Imagick::COMPOSITE_ATOP 옵션
$imagick->setImageCompose(Imagick::COMPOSITE_ATOP);
$imagick->compositeImage($imagick2, $imagick->getImageColorspace(), 0, 0);
// Imagick::COMPOSITE_OVER 옵션
$imagick->setImageCompose(Imagick::COMPOSITE_OVER);
$imagick->compositeImage($imagick2, $imagick->getImageColorspace(), 0, 0);
// Imagick::COMPOSITE_IN 옵션
$imagick->setImageCompose(Imagick::COMPOSITE_IN);
$imagick->compositeImage($imagick2, $imagick->getImageColorspace(), 0, 0);
// Imagick::COMPOSITE_OUT 옵션
$imagick->setImageCompose(Imagick::COMPOSITE_OUT);
$imagick->compositeImage($imagick2, $imagick->getImageColorspace(), 0, 0);
// Imagick::COMPOSITE_PLUS 옵션
$imagick->setImageCompose(Imagick::COMPOSITE_PLUS);
$imagick->compositeImage($imagick2, $imagick->getImageColorspace(), 0, 0);
// Imagick::COMPOSITE_MINUS 옵션
$imagick->setImageCompose(Imagick::COMPOSITE_MINUS);
$imagick->compositeImage($imagick2, $imagick->getImageColorspace(), 0, 0);
// Imagick::COMPOSITE_XOR 옵션
$imagick->setImageCompose(Imagick::COMPOSITE_XOR);
$imagick->compositeImage($imagick2, $imagick->getImageColorspace(), 0, 0);
$imagick->writeImage('output.png');
2025-06-05 00:56