2011-05-06 2 views
4

ImageMagickconvert을 사용하여 즉시 비트 맵을 생성하고 싶습니다.페이지 크기와 해상도로 이미지를 생성 하시겠습니까?

그러나 이미지 크기를 픽셀로 직접 지정하는 대신 페이지 크기 (예 : A4 - 내부적으로 인치/센티미터로 지정)를 지정한 다음 DPI에서 해상도를 지정하고 싶습니다.

convert -page A4 -density 300x300 xc:white -pointsize 72 -draw "text 25,60 'test'" test.png 

은 ... 불행하게도,이 크기는 1x1 픽셀 인 .PNG 이미지를 생성 : 내 convert 옵션으로보고에서

, 나는 다음과 같은 명령 줄 트릭에 대한 것 짐작.

convert으로 할 수있는 일이 무엇입니까? 그렇지 않다면,이 목적을 위해 사용될 수있는 다른 도구가 있습니까? 내 생각

답변

3

, 가장 가까운 나는이 (ImageMagick를 6.6.2-6)입니다 얻을 수 있습니다 : 첫 번째 명령은 pdf에 대한 적절한 페이지 크기를 생성

  • :
    convert xc:white -page A4 myout.pdf 
    convert -density 300x300 myout.pdf -pointsize 72 -draw "text 25,235 'test'" myout.png 
    

    하는 것으로

    (그러나 대한 ps)
  • convert의 S에서 pdf
  • 같은 벡터 파일에 '그릴'수 없습니다 econd 명령의 경우 인수는 순서대로 지정해야합니다. 따라서 pdf는 텍스트가 그려지는 알려진 크기의 배경으로 사용됩니다. Btw은

는 pdf 파일의 주어진 밀도 픽셀 크기를 구하는 방법

것 같아요
$ convert myout.pdf -format "%[fx:round(w)]x%[fx:h]" info: 
595x842 
$ convert -density 300x300 myout.pdf -format "%[fx:w]x%[fx:h]" info: 
2479x3508 

, 이것은 제가하고 싶었던 것은 하나의 convert 명령 줄 수 없음을 의미합니다.

,536,913,632 ..

여기

 

도 또한, 그라데이션을 이용하는 코드 10

convert xc:white -page A4 myout.pdf 
TSIZE=$(convert -density 300x300 myout.pdf -format "%[fx:w]x%[fx:h]" info:) 
convert -density 300x300 -size $TSIZE myout.pdf gradient:\#4b4-\#bfb -pointsize 72 -draw "text 25,235 'test'" -flatten myout.png 

주어진 밀도의 이미지 크기는 그라디언트에 필요한 별도의 단계에서 검색해야합니다. 또한 -flatten의 사용법을 주목하십시오 (그것없이 여러 개의 png 파일이 생성됩니다).

참고 :

관련 문제