텍스트 파일을 그림으로 변환하는 방법

텍스트 파일을 그림으로 변환하는 방법

일반 텍스트 파일이 있는 경우 명령줄을 통해 어떻게 이미지 파일로 변환할 수 있나요? (그리고 그 안에 ASCII 아트의 레이아웃을 보존합니다)

답변1

imagemagick당신 친구가 여기 있어요. 다음과 유사한 내용이 도움이 될 수 있습니다.

convert -size 360x360 xc:white -font "FreeMono" -pointsize 12 -fill black -draw @ascii.txt image.png

ASCII-art 파일은 어디에 ascii.txt있습니까?

text 15,15 "                 .88888888:. 
                88888888.88888. 
              .8888888888888888. 
              888888888888888888 
              88' _`88'_  `88888 
              88 88 88 88  88888 
              88_88_::_88_:88888 
              88:::,::,:::::8888 
              88`:::::::::'`8888 
             .88  `::::'    8:88. 
            8888            `8:888. 
          .8888'             `888888. 
          .8888:..  .::.  ...:'8888888:. 
        .8888.'     :'     `'::`88:88888 
       .8888        '         `.888:8888. 
      888:8         .           888:88888 
    .888:88        .:           888:88888: 
    8888888.       ::           88:888888 
    `.::.888.      ::          .88888888 
   .::::::.888.    ::         :::`8888'.:. 
  ::::::::::.888   '         .:::::::::::: 
  ::::::::::::.8    '      .:8::::::::::::. 
 .::::::::::::::.        .:888::::::::::::: 
 :::::::::::::::88:.__..:88888:::::::::::' 
  `'.:::::::::::88888888888.88:::::::::' 
        `':::_:' -- '' -'-' `':_::::'`  
    "

텍스트의 첫 번째 줄로 추가 되었습니다 text 15,15(15,15는 위치 오프셋입니다). 또한 변환할 실제 텍스트가 따옴표로 묶여 있는지 확인하십시오. 작은따옴표나 큰따옴표도 괜찮지만 문제를 혼란스럽게 할 수 있으므로 ASCII 아트의 일부로 사용하지 않도록 하세요.

선택한 글꼴은 고정 폭 글꼴이어야 합니다. 그렇지 않으면 텍스트가 정렬되지 않습니다.

이는 다음을 생성합니다.

여기에 이미지 설명을 입력하세요

답변2

-annotateImageMagick의 연산자는 garethTheRed가 제안한 방법보다 조금 더 편리하다고 생각합니다 -draw. 입력 파일을 수정할 필요가 없다는 단순한 이유 때문입니다. 만큼 강력하지는 않지만 -draw텍스트 파일의 내용을 이미지로 일괄적으로 덤프하는 데는 괜찮습니다.

convert -size 360x360 xc:white -font "FreeMono" -pointsize 12 -fill black \
-annotate +15+15 "@ascii.txt" image.png

주어진 파일 내용의 렌더링된 버전을 출력하지만 기본 요소 text 15x15의 일부를 포함하도록 "ascii.txt" 파일을 수정할 필요가 없습니다 -draw.

인수 지정

-fontFreeMono를 사용할 수 없거나 단순히 원하지 않는 경우 인수는 지원되는 글꼴 이름이 될 수 있습니다. ImageMagick 명령에 사용할 수 있는 글꼴 목록은 연산자를 사용하여 얻을 수 있으므로 -list에서 convert -list font에 가능한 모든 인수를 표시합니다 -font.

-annotate캔버스 가장자리에서 렌더링된 텍스트를 이동하는 거리에 대한 인수는 각각 가로 및 세로 픽셀 오프셋으로 구성됩니다. 첫 번째 오프셋(가로 x 시프트)은 양의 정수일 수 있지만 몇 픽셀보다 클 필요는 없습니다. 두 번째 오프셋(수직 y-shift)~ 해야 하다BE적어도ImageMagick이 선택한 글꼴의 포인트 크기(에 대한 인수 -pointsize)와 같습니다.기준선주어진 오프셋의 글꼴. 따라서 글꼴을 최소 픽셀 아래로 이동하지 않으면 pointsize첫 번째 줄의 상단이 잘립니다.

최소한 몇 픽셀씩 넘어가는 것이 좋습니다. 따라서 사용하는 -pointsize 64경우 -annotate +15+80. (더 큰 글꼴 크기로 가로 오프셋을 늘릴 이유가 없으며 텍스트 크기와 관련이 없습니다.)

출력 이미지의 필요한 크기를 추측하는 것도 지루할 수 있습니다. 나는 보통 과도한 값을 선택한 다음 ImageMagick을 활용 -trim하고 -border결과를 자동으로 자릅니다. 다음 명령:

convert -size 1000x2000 xc:white -font "FreeMono" -pointsize 12 -fill black \
-annotate +15+15 "@ascii.txt" -trim -bordercolor "#FFF" -border 10 +repage image.png

1000x2000 상자로 렌더링한 다음 텍스트 주위의 10픽셀 테두리를 제외하고 과도한 공백을 잘라냅니다. 맨 끝에 있는 는 +repage이미지 오프셋을 사용하여 출력 PNG가 생성되는 것을 방지합니다. 그렇지 않으면 김프가 로드 시 오프셋을 적용할지 묻는 대화 상자를 표시하게 됩니다.

(분명히 작은 텍스트 파일의 경우 1000x2000이 과도하고 긴 텍스트 파일의 경우 최소한 세로 크기를 늘려야 할 수 있습니다. 하지만 유일한 비용은 convert처리하는 동안 약간 더 많은 CPU와 메모리를 소비하므로 과대평가하는 것이 더 간단합니다.)

입력 전처리

텍스트 파일이 렌더링에 필요한 방식으로 아직 형식화되지 않은 경우(예를 들어 매우 긴 줄을 사용하는 경우) 에 전달하기 전에 형식을 다시 지정해야 할 수도 있습니다 convert. ImageMagick은 텍스트를 줄 바꿈하지 않으므로 각 텍스트 줄은 전체 길이를 가로로 확장합니다. 다행히 원하는 명령줄 포맷터를 통해 파일을 실행한 다음 convert파일에서 직접 읽는 대신 처리된 텍스트를 파이프로 연결할 수 있습니다.

fmt < ascii.txt | convert -size 1000x2000 xc:white -font "DejaVu-Sans-Condensed" \
-pointsize 24 -fill black -annotate +15+30 "@-" -trim -bordercolor "#FFF" \
-border 10 +repage image.png

ascii.txt그러면 24포인트 DejaVu Sans Condensed 의 내용이 렌더링됩니다 .~ 후에이는 명령에 의해 처리되었으며 fmt, 기본 작동 모드에서는 단어 줄 바꿈을 통해 입력 형식을 75열 너비로 다시 지정합니다. (URL과 같이 75자를 초과하는 긴 연속 문자열이 있는 경우에는 확장됩니다.)

fmt텍스트 형식을 다시 지정하면 전달되어 파일을 직접 읽는 것과 마찬가지로 convert파이프된 출력을 렌더링합니다 . fmt(파일 이름을 지정하는 것은 "이름 -이 지정된 디스크 파일 대신 표준 입력에서 읽기"에 대한 매우 일반적인 UNIX 쉘 약어이며 ImageMagick의 도구는 해당 규칙을 따릅니다.)

답변3

오픈오피스(libreoffice)를 사용하면 됩니다.

soffice --convert-to jpg "Textfile.doc"

텍스트 파일에서도 작동합니다.

답변4

간단한 해결책은 pango-view다음에서 제공하는 것을 사용하는 것입니다.팡고, GTK에서 사용되는 텍스트 렌더링 라이브러리는 이미 설치되어 있을 것입니다.

pango-view --font=mono -qo image.png file

당신은 만들 수 있습니다SVG도!

pango-view --font=mono -qo image.svg file

pango-view많은 사용자 정의 및 레이아웃 옵션이 있습니다. 맨 페이지를 참조하세요.

관련 정보