2016-12-13 10 views
2

iMagick으로 지정된 색상을 투명도로 변환하고 싶습니다. 이 작업을 수행하는 한 가지 방법을 찾았지만 이미지 전체를 검사하는 대신 페인트 통처럼 작동합니다. 다음과 같은 예를 들어 iMagick (PHP) 구문에서 주어진 색상의 모든 픽셀을 투명하게 변환 하시겠습니까?

, 내가 이것을 사용하고 있습니다 :

$transparentColor = new ImagickPixel('transparent'); 
$image->floodFillPaintImage($transparentColor, 20000, "#0009c5", 0, 0, false, Imagick::CHANNEL_ALPHA); 

This is the input image This is the output image 내가보고 싶은 그 결과 모든 파란색 영역이 투명으로 향했다입니다. 불행히도 "채우기"가이 기능의 핵심 포인트이며 따라서 "대상"색상이 아닌 경우 중지됩니다.

사람이 iMagick (라인 있는 Imagemagick을 명령하지 )를 사용하여 투명하게 모든 파란색 영역을 돌려 수행하는 방법을 알고 있나요?

미리 감사드립니다.

+1

가능한 중복. 색상을 투명하게 바꾸기] (http://stackoverflow.com/questions/9297967/imagick-changing-a-color-to-be-transparent) –

답변

0

시도 :

$image->transparentPaintImage($targetColor, $alphaLevel, $fuzz, false); 

투명 영역, 그것은 얼룩을 제거하는 데 도움이 될 수 있습니다 "지저분한"인 경우 :

$image->despeckleimage(); 

문서 : [Imagick의 http://php.net/manual/en/imagick.transparentpaintimage.php

+0

효과가있는 것 같습니다! 유일한 예외는이 방법이 ImagicPixel ('투명')을 허용하지 않는 것입니다. 그래서 마지막으로 작동했습니다 : '$ image-> transparentPaintImage ($ targetColor, 0.0, $ fuzz, false); ' 도움을 주셔서 대단히 감사합니다! 진심으로 감사드립니다! – Shochu

+0

아, 네 말이 맞아. 문서를 다시 읽으면 두 번째 매개 변수는 알파 수준 (0.0 ~ 1.0)입니다. 수정 해 주셔서 감사합니다 - 나는 내 대답을 편집했습니다. –