2017-09-04 6 views
1

지금 나는 꽤 포괄적 인 (적어도 나를 위해) imagemagic 작업을하고있다. exif-data에서 추출한 주석을 추가하고 오버레이 이미지를 추가하고 싶습니다. 는 순간 난 다음 코드를 보내고 있습니다 :포지셔닝 레이어

convert -verbose source.jpg \ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthWest -annotate +10+10 "some exif data"\ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity North  -annotate +10+10 "more exif data"\ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthEast -annotate +10+10 "even more exif data"\ 
    -gravity South overlay.png \ 
    -layers flatten \ 
    -quality 95 destination.jpg; 

주석은 위치를 포함하여 잘 작동합니다. 하지만 오버레이로 붙어 있습니다. 그것은 "중력의 남쪽"이 여기서 작동하지 않는 것 같습니다. 그것은 왼쪽 상단 모서리에 붙어 있습니다. 오버레이를 아래쪽으로 가져오고 중심에 배치하려면 무엇을 변경해야합니까?

보너스 질문 : 오버레이를 반투명하게 만드는 방법은 무엇입니까?

+0

후 원래의 이미지와 결과를. – zindarod

답변

2

당신은 당신의 convert-composite보다는 -flatten을 사용해야합니다

convert -verbose source.jpg \ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthWest -annotate +10+10 "some exif data"\ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity North  -annotate +10+10 "more exif data"\ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthEast -annotate +10+10 "even more exif data"\ 
    -gravity South overlay.png -composite \ 
    result.jpg 

enter image description here

오버레이가 반투명하려면, 사용 :

convert -verbose source.jpg \ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthWest -annotate +10+10 "some exif data"\ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity North  -annotate +10+10 "more exif data"\ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthEast -annotate +10+10 "even more exif data"\ 
    \(-gravity South overlay.png -channel A -fx "0.5" \) -composite \ 
    result.jpg 

,691,363을 그런데210

, -pointsize, -fill-undercolor"설정", 그래서 변경 될 때까지 당신이 그들을 반복 할 필요가 없습니다 그래서 그들은, 설정 유지 :

convert -verbose source.jpg -pointsize 32 -fill white -undercolor '#00000070' \ 
    -gravity NorthWest -annotate +10+10 "some exif data"\ 
    -gravity North  -annotate +10+10 "more exif data"\ 
    -gravity NorthEast -annotate +10+10 "even more exif data"\ 
    \(-gravity South overlay.png -channel A -fx "0.5" \) -composite \ 
    result.jpg 
1

composite이 아닌 오버레이를 추가해야합니다 (convert이 아님).

convert -verbose source.jpg \ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthWest -annotate +10+10 "some exif data"\ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity North  -annotate +10+10 "more exif data"\ 
    -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthEast -annotate +10+10 "even more exif data"\ 
    -layers flatten \ 
    -quality 95 destination.jpg; 

다음 :

composite here
composite -gravity South overlay.png destination.jpg result.jpg 

더.

편집 : 가장 좋은 방법은 ImageMagick 중간 저장 형식 miff을 사용하고 파이프 라이닝하는 것입니다. 이렇게하면 디스크에서 읽기/쓰기의 추가 단계를 줄일 수 있습니다.

convert -verbose source.jpg \ 
     -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthWest -annotate +10+10 "some exif data"\ 
     -pointsize 32 -fill white -undercolor '#00000070' -gravity North  -annotate +10+10 "more exif data"\ 
     -pointsize 32 -fill white -undercolor '#00000070' -gravity NorthEast -annotate +10+10 "even more exif data"\ 
     -layers flatten \ 
     -quality 95 miff:- | \ 

composite -gravity South overlay.png miff:- destination.jpg