2016-06-03 4 views
0

이미지 magick에서 텍스트의 폭을 어떻게 가져올 수 있습니까?이미지 매직 텍스트 포인트의 수를 기준으로 텍스트 포인트를 맞 춥니 다

변환 - 크기 720x480의 -background # 000 XC :

나의 현재 변환 명령은 다음과 같습니다 블랙 채집 한 흰색 -stroke 흰색 \ -font 굴림 -pointsize 18 \ -draw "텍스트 72370 \ -font Arial -pointsize 18 \ -draw "text, ''"\ -font Arial -pointsize 18 \ -draw "text, ''"\ -font Arial -pointsize 18 \ -draw " 텍스트 370,370 '엑스트라' "\ -font 구두점 -pointsize 18 \ -draw"텍스트 430,370 'opt' "\ -font 구두점 -pointsize 18 \ -draw"텍스트 550,370 'NavP1' "\ C : \ xampp \ htdocs \ labelText

내가이 프로그래밍 한 .bmp로하고 중심을 원하고 나는 내 PHP는 포뮬러/데이터베이스에서 탐색 점의 번호를 (

을 얼마나 많은 탐색 포인트를 기준으로 서로 탐색 점을 맞 춥니 다). 여기

조금 무슨 뜻인지의 스케치 어떻게 내가 그 이미지에 대한 고정 폭

________________________________________ 
|          | 
|          | 
|          | 
|    navp1 navp2    | 
|_______________________________________| 

________________________________________ 
|          | 
|          | 
|          | 
|   navp1 navp2 navp3   | 
|_______________________________________| 

과 같아야입니다 (720px).

따라서 최소한 2 개의 탐색 지점과 최대 6 개의 탐색 지점이 있습니다.

제 생각에 각 탐색 (텍스트/단어) 포인트의 너비를 얻을 수 있다면 포인트를 정확하게 계산하고 정렬 할 수 있습니다.

하지만 알다시피 나는 그렇게하는 기능을 찾을 수 없습니다.

나는 마크 Setchell 응답을 시도했지만 내 명령은 실수를 갖고있는 것 같아요

변환 -debug 주석 - 크기 720x480의 -background # 000 XC : 블랙 채집 한 흰색 -stroke 흰색 \ -font 굴림 -pointsize 18 \ -draw "텍스트 72,370 'nav1'"\ -font Arial- 점 크기 18 \ -draw "텍스트 180,370 'nav2'"\ -font 구두점 -pointsize 18 \ -draw "텍스트 430,370 'nav3'"\ -font Arial-point size 18 \ -draw "텍스트 550,370 'nav4'"\ C : \ xampp \ htdocs \ test.bmp

다음과 같은 오류 메시지가 :

어떤 이미지가 정의 오류 @ '- 배경 없다'/ convert.c/ConvertImageCommand/325

+0

당신이 당신의 명령을하시기 바랍니다 단순화 할 수 있습니까? 모든'-size' 설정의 요점은 무엇입니까, 당신은 내가 말할 수있는 한 처음 것 이외의 것들을 필요로하지 않습니다. 또한'-font'와'-pointsize'는'-fill'와'-stroke'와 똑같은 * "settings"*이므로 변경 될 때까지 설정 상태를 유지하기 때문에 첫 번째 항목을 제외하고 모두 제거 할 수 있습니다. –

+0

좋아, 약간 도움이 되었으면 좋겠다. –

+0

'# '은 주석 문자이기 때문에 작동하지 않는다. 그래서 이스케이프 또는 인용해야한다. 아니면 그냥'black '을 사용한다. –

답변

0

나는, 나는 완전히 당신이 찾고있는 것을 이해하지 확신하지만 폰트 메트릭을 얻는 것이 도움이된다고 생각하십시오.이 시도하고 시작 라인에서 원하는 모든 숫자를 찾아 "메트릭 :"

convert -debug annotate -size 720x480 -background red xc:black -fill white -stroke white -font Arial -pointsize 18 -draw "text 82,370 'Nav P1'" a.png 

출력

2016-06-03T09:50:12+01:00 0:00.010 0.010u 6.9.4 Annotate convert[85474]: annotate.c/RenderFreetype/1421/Annotate 
    Font /Library/Fonts/Arial.ttf; font-encoding none; text-encoding none; pointsize 18 
2016-06-03T09:50:12+01:00 0:00.020 0.010u 6.9.4 Annotate convert[85474]: annotate.c/GetTypeMetrics/843/Annotate 
    Metrics: text: Nav P1; width: 58; height: 21; ascent: 16; descent: -4; max advance: 36; bounds: 1.95312,0 6.70312,14; origin: 59,0; pixels per em: 18,18; underline position: -4.5625; underline thickness: 2.34375 
2016-06-03T09:50:12+01:00 0:00.020 0.010u 6.9.4 Annotate convert[85474]: annotate.c/RenderFreetype/1421/Annotate 
    Font /Library/Fonts/Arial.ttf; font-encoding none; text-encoding none; pointsize 18 
+0

감사합니다.이 문제를 해결해 드리겠습니다. –

+0

출력이 아마도 명령 행에서만 표시되는지 궁금 해서요. 인쇄 방법은 "echo "라고 말하면 브라우저에서와 마찬가지로 –

+0

브라우저가 맞습니까? 웹 기반 응용 프로그램 용 PHP를 작성하고 있다면 ** PHP Imagick **에서 글꼴 메트릭을 쿼리하고 전 세계에서 모든 컨트롤을 사용할 수 있습니다. http://php.net/manual/en/imagick. queryfontmetrics.php - 나는 아직도 당신이 실제로하려고하는 것을 이해하지 못합니다! –