텍스트 파일을 이미지로 변환하는 방법

텍스트 파일을 이미지로 변환하는 방법

일반 텍스트 파일이 있는 경우 명령줄을 통해 어떻게 이미지 파일로 변환합니까? (그리고 ASCII 아트의 레이아웃을 유지합니다)

답변1

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

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

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

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

입력 파일을 수정할 필요가 없다는 단순한 이유 때문에 ImageMagick의 -annotate연산자가 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 오프셋)~ 해야 하다적어도-pointsizeImageMagick이 글꼴을 배치하므로 선택한 글꼴(의 매개변수)의 포인트 크기와 같습니다 .기준선지정된 오프셋의 글꼴입니다. 따라서 글꼴을 최소 픽셀만큼 아래로 이동하지 않으면 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를 생성하기 위해 이미지 오프셋을 사용하는 것을 방지합니다. 그러면 김프가 로드 시 오프셋을 적용해야 하는지 묻는 대화 상자가 표시됩니다.

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

입력 전처리

텍스트 파일이 렌더링에 필요한 방식으로 아직 형식화되지 않은 경우(예: 매우 긴 줄을 사용하는 경우) ImageMagick에 전달하기 전에 이 작업을 수행해야 할 수 있습니다 convert. 텍스트가 전체 길이로 확장됩니다. 다행히 원하는 명령줄 포맷터를 통해 파일을 실행한 다음 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 압축 콘텐츠가 렌더링됩니다.뒤쪽에fmt이는 기본 작동 모드에서 자동 단어 줄 바꿈을 사용하여 입력 형식을 75열 너비로 다시 지정하는 명령에 의해 처리 되었습니다 . (단, URL과 같이 75자를 초과하는 긴 연속 문자열이 있는 경우에는 확장됩니다.)

텍스트 형식이 다시 지정 되면 파일에서 직접 읽은 것처럼 렌더링 파이프라인 출력 fmt으로 전달됩니다 . (파일 이름을 지정하는 것은 "이름이 지정된 디스크 파일이 아닌 표준 입력에서 읽는 것"에 대한 매우 일반적인 UNIX 쉘 약어이며 ImageMagick의 도구는 이 규칙을 따릅니다.)convertfmt-

답변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다양한 사용자 정의 및 레이아웃 옵션이 있습니다. 맨 페이지를 참조하세요.

관련 정보