2016-09-29 14 views
2

는 I 특정 좌표 직사각형으로, 이와 같은 화상을 이제 ImageMagick으로 일부 텍스트를 렌더링하려고하므로 이 사각형에 정확히 들어 맞습니다. 긴 (와이드) 문자열 한편ImageMagick은 사각형 안에 가장 잘 맞는 텍스트입니까? <p><img src="https://i.imgur.com/9rlg6uC.jpg" alt="image"></p> <p><sup></p> 은 (illustratory 목적 I가있는 사각형의 좌표와 크기와 중심 넣어)</sup></p> <p>:

short string

, 사각형의 폭 : 그것은 매우 짧은 (좁은) 문자열의 경우

는 사각형의 높이은 제한 요인이 될 것입니다의 크기를 결정한다 : 어느 경우

long string

을 독립적 O f 텍스트가 얼마나 짧거나 긴 지, 한 줄에 인쇄하고 싶습니다. 단어 줄 바꿈 또는 여러 줄 없음)을 입력하고 정확히 사각형에 맞춰야하며 이 중심이 됨 (텍스트의 가운데가 사각형의 가운데에 있음)인지 확인하십시오.

내 questons :

  1. ImageMagick이이 '최적'기능을 수행하는 방법 (I 동적이에 필요한 -pointsize을 결정하는 방법을 모른다)

  2. 를 얻는 방법 텍스트를 중심으로 한 경우 -gravity center을 사용하면 전체 이미지 내의 텍스트 위치 인 에 적용되는 것처럼 보입니다. 즉, 텍스트 좌표가 전체 이미지의 중심에 상대적으로됩니다. 그러나 정확한 (절대) 좌표를 지정하고 싶습니다. 그리고이 좌표는 텍스트의 중심이어야합니다. 내가 할 경우 예를 들어

이 :

convert test.jpg -font Arial -fill yellow \ 
-pointsize 65 -draw "text 398,90 'Hello'" test2.jpg 

내가 받고 있어요 : 좌표 내가 (사각형의 중심)를 지정하는 방법

wrong

참고가 될 하단 왼쪽 텍스트 앵커 포인트!

을 (이 나를 놀라게) 그리고 내가 할 경우 :

convert test.jpg -font Arial -fill yellow \ 
-pointsize 65 -gravity center -draw "text 148,-94 'Hello'" test3.jpg 

를 내가 얻을 :

좀 OK이지만, 이상한 텍스트 내가 들어갈 때 사용 할 좌표를 참고

ok-ish

그. 게다가 자동으로 포인트 크기를 계산하는 방법을 알지 못합니다 (시행 착오를 통해 위의 작업을 수행했습니다).

답변

4

업데이트 대답 내가 지금 모여 무엇으로

, 나는 이것이 당신의 최선의 선택이 될 수있다 생각합니다.

convert sea.jpg \(-size 173x50 -background none label:"A" -trim -gravity center -extent 173x50 \) -gravity northwest -geometry +312+66 -composite result.png 

enter image description here

그리고이 : 기본적으로

convert sea.jpg \(-size 173x50 -background none label:"A very much longer label" -trim -gravity center -extent 173x50 \) -gravity northwest -geometry +312+66 -composite result.png 

enter image description here

, 좀 을 사용하고있는 텍스트를 생성하기 위해 괄호 안에 "를 따로 처리"다음에 그것을 합성 그 이후의 페이지. 가장 좋은 자동 크기로 label:으로 텍스트를 생성 한 다음 텍스트 주위의 초과 공간을 제거하십시오. 그런 다음 테두리가 항상 같은 크기가되도록 -gravity center을 사용하여 테두리가 중앙에 오도록 배경을 확장하고 (-geometry) 왼쪽 위 모서리를 기준으로 상대적으로 합성 할 때 위치를 지정할 수 있습니다. -gravityNorthWest으로 재설정하십시오. 당신은 ImageMagick이 주어진 상자에 텍스트에 맞게 최선을 다하려는 경우

원래 대답

, 당신은 caption보다는 annotate, label 또는 -draw "text"을 사용해야합니다. ,

convert sea.jpg -size 173x50! caption:"Your text" -geometry +312+66 -composite result.png 

enter image description here

또는 :

그래서 당신은 -geometry를 사용하여 올바른 지점에, 당신의 바다 이미지를로드 자막의 크기를 설정, 그 이미지에 캡션 및 합성을 그리려

convert sea.jpg -size 173x50! caption:"A considerably longer text that will result in a smaller font being chosen" -geometry +312+66 -composite result.png 

enter image description here

: 긴 텍스트와 당신이 빈 배경을 원하는 경우에 당신이 당신의 텍스트를 중심하려면 617,451,515,

, 당신이 할 수있는, caption:

convert sea.jpg -size 173x50! -background none caption:"Your text" -geometry +312+66 -composite result.png 

enter image description here


전에 -background none를 사용하는 Pango가이 같은 있지만,과 자동 크기 조정 기능을 포기한다고 생각합니다.

convert sea.jpg -size 173x50! -background none -gravity center pango:'<span foreground="yellow">ABC</span>' -gravity northwest -geometry +312+66 -composite result.png 

enter image description here

+0

감사합니다. 자동 크기 조정 캡션 명령을 인식하지 못했습니다. 그래도 여전히 몇 가지 질문 : 텍스트가 왼쪽 정렬 (특히 [매우 짧은 문자열] (http://i.imgur.com/vzw1zuN.png)을 사용하는 경우 볼 수 있음), 중심에 배치 할 수 있습니까? 또한 투명하게 합성하여 텍스트 자체 만 볼 수 있으며 배경은 변경되지 않습니까? 그리고 텍스트 줄 바꾸기를 피할 수 있습니까? 즉, 모든 내용이 한 줄로 표시되도록 할 수 있습니까? 오, 마침내, 단지 궁금하다, 그것은 무엇인가!크기 매개 변수는? ('-size 173x50!') – RocketNuts

+0

감탄 부호는 내가 정확하게 그 크기를 원하고 ** ImageMagick **이 사물을 둥글게하거나 지능적으로 비율을 관리하는 것을 원하지 않는다는 것을 의미한다 - 그것은 일종의 "강제"옵션이다 . –

+0

사실, 나는'-caption' 명령 앞에'-background transparent-fill yellow '를 삽입하여 투명 합성물을 얻었습니다. (edit - aha, background none도 잘 작동합니다.) 하지만 텍스트가 사각형에 완전히 들어 맞지 않는 것 같습니다. 위와 아래에 사용되지 않은 공간이 있습니까? – RocketNuts