2013-06-30 1 views
3

PHP에서 Graphicsmagick 명령을 조합 한 다음 exec()를 사용하여 호출합니다. 이미지를 트리밍해야하지만 20 픽셀의 패딩을 유지해야합니다. 그래서 다음과 같이하고 싶습니다 :이미지 배경을 자르고 Graphicsmagick에 패딩 남기기

exec('gm convert input.jpg -trim -bordercolor white -border 20x20 output.jpg'); 

그러나 흰색 대신 잘린 색을 사용하십시오. 이것이 어떻게 달성 될 수 있는가?

답변

1

현재 GraphicsMagick에서는이 기능을 사용할 수없는 것으로 보입니다 (작성 당시 : GM v1.4 베타).

IM은 소정의 화소의 컬러 값을 샘플링하는 FX 명령을 제공하기 때문에 ImageMagick를에서는

그것을 할 수

convert myimage.png -format '%[fx:p{10,20}]' info: 

이 위치의 화소의 컬러 값을 반환을 X = 10, Y = 20. 이후 출력은 해당 색상의 테두리를 추가하는 후속 IM 명령에 사용될 수 있습니다.

3

나를 위해 작동합니다.

gm convert input.jpg -crop 1x1+0+0 corner.txt 
color=`sed -e "s/.* #/#/" corner.txt` 
gm convert input.jpg -trim -bordercolor $color -border 20x20 output.jpg 

GraphicsMagick의 TXT 형식은 첫 번째 행 (1x1 크기의 이미지 만 실제로 라인)이다 (ImageMagick과 달리)에는 헤더이므로 (0,0) 픽셀이 없다. 때 1x1에 대한 corner.txt 파일은 이미지가 단순히 잘립니다이 :

0,0: (255,255,255) #FFFFFF 

내 테스트 이미지의 흰색 우연히,하지만이 (0,0) 픽셀의 어떤 색 될 것입니다.

+0

감사합니다. 또한 [fuzz] (http://www.graphicsmagick.org/GraphicsMagick.html#details-fuzz) 매개 변수가 정말 도움이 됨으로써 가장자리에 아티팩트가있는 엉터리 jpeg가있는 경우에도 가장자리를 트리밍 할 수 있습니다. –