이미지를 ASCII 아트 이미지로 변환 할 수있는 명령 줄 프로그램이 있습니까?


19

이미지를 ASCII 아트로 변환 한 다음 해당 출력을 이미지 (예 : jpg 또는 png)로 저장할 수있는 명령 줄 프로그램 (Linux 용)이 있습니까?

내가 필요로하는 것을 설명하기 위해 아래 이미지를 ASCII 아트로 변환하고 싶습니다. 여기에 이미지 설명을 입력하십시오

프로그램에서 원하는 출력은 이미지와 ASCII 변환기의 출력 스크린 샷을 생성하여 생성 된 것과 비슷해야합니다 (출력은 순수한 텍스트였습니다)

여기에 이미지 설명을 입력하십시오

김프에는 이미지를 아스키 아트로 저장하는 기능이 있으며 aview 는 이미지를 아스키로 변환 할 수도 있습니다. 그러나 전자는 명령 줄을 통해 수행 할 수 없으며 후자는 출력을 보지 않고 볼 수 있습니다 (출력 스크린 샷을 찍고 싶지는 않습니다).

또한 libcaca 는 출력을 이미지에 저장할 수 있지만 아래처럼 화려한 ASCII 만 출력 한다는 것을 알고 있습니다.

여기에 이미지 설명을 입력하십시오

소스 이미지를 그레이 스케일로 변환 한 후 다음 명령을 사용하여 만듭니다.

img2txt -W 70 -f tga input.jpg > output.tga

명령 줄 프로그램을 원하는 이유는 이미지로 가득 찬 폴더를 일괄 처리하기 때문입니다.


1
나는 그것을 시도한 적이 없지만 텍스트를 convert(ImageMagick) 으로 파이프하는 것이 가능하다는 것을 알고 있습니다. img2txt의 출력 -f를 컬러 ansi가 아닌 ansi로 설정하면 결과를 파이프로 변환하여 변환 할 수 있습니다 (또는 다른 적절한 소프트웨어)
horatio

@horatio : convert는 파일 입력을 예상하고 파이프에서 읽기를 거부합니다. 어쨌든 임시 파일을 통해 할 수 있습니다.
Takkat

답변:


7

당신이 사용할 수있는 이 파이썬 코드 나 정지 영상 및 동영상에서 아스키 아트를 만들 생성을 :

https://gist.github.com/lindylex/9374326

출력 예

기발한 여기에 이미지 설명을 입력하십시오

ASCII 아트 출력 ( python ascii_movie_image_ver_1.py cat.jpg 4 10) 여기에 이미지 설명을 입력하십시오


2
자신의 사이트 인 경우에도 링크가 왔다가 ... 코드를 사용하여 "이전"및 "이후"스크린 샷 두 개를 추가 할 수 있습니까?
Ilan

4
나는 예를 추가 공개 자식 저장소 지적했습니다 @Ilan
hellocatfood을

14

Linux를 실행하는 것 같으면 원하는 결과를 얻기 위해 응용 프로그램을 쉽게 결합 할 수 있습니다. 그런 다음 배치 처리 스크립트에 통합 할 수도 있습니다.

아래 예는 원하는 결과를 얻을 수있는 많은 옵션이있는 강력한 JPG-ASCII 아트 변환기 인 jp2a 를 사용 합니다 (맨 페이지 참조). 그런 다음 ImageMagick 스위트 에서 변환 을 사용하여 결과 ASCII 텍스트 파일을 이미지로 추가 처리합니다 . 결과를 미세 조정할 수있는 옵션이 많이 있습니다. 배포판 리포지토리에서 두 응용 프로그램을 모두 사용할 수 있습니다.

아래 샘플 스크립트는 .jpg입력 JPEG 이미지에서 ASCII 아트 이미지 (확장자에 따라 형식, JPEG 용 형식 )를 생성합니다. 소스는 6pt에서 160 자 너비로 렌더링됩니다. 그러면 변환에서 사전 정의 된 기본 페이지 크기에 맞습니다.

#! /bin/bash
#Usage ./j2asc infile.jpg outfile.jpg

echo "converting $1 to $2"
jp2a --width=160 -i  $1 --output=tmp.txt
convert -font Courier -pointsize 6 tmp.txt $2

이것은 아마도 내가 원하는 결과에 가장 가깝습니다. 감사!
hellocatfood

너비를 다른 것으로 지정하는 방법이 835px있습니까? 아스키 아트를 1920x1080배경 화면 이미지 로 변환하고 싶지만 -resize 1920x1080옵션을 통과 하면 너비는에 유지됩니다 835px.

@awashburn : 이미지 크기는 문자 수 (너비)에 의해 결정되고 포인트 화됩니다. 더 큰 출력을 위해 포인트를 확대하거나 두 번째 실행으로 결과 이미지를 스케일합니다.
Takkat

1
MacOS 사용자의 경우 : jp2a는 homebrew 및 running을 통해 사용할 수도 있습니다 brew install jp2a.
k0pernikus

1
경우에 따라 html로 직접 출력하는 것도 고려하십시오 jp2a --html --width=160 --chars="\'\"love" input.jpg --output=output.htm. 렌더링에 선호하는 문자 세트를 지정할 수 있습니다 (메타 문자를 사용하려면 이스케이프해야합니다). jp2a의 경우 AUR for Arch 도 참조하십시오 .

2

Node.js Knockout 2012에서 웹캠 비디오 피드를 가져 와서 "아스키 피드"를 추출한 수상작이있었습니다.

아스키 그램

아스키 그램 페이지

Asciigram은 웹캠을 사용하여 ASCII 비디오 및 이미지를 만들 수있는 "생산성 도구"입니다. 이미지를 페이지로 드래그하여 ASCII 이미지를 만들 수도 있습니다. [링크]

정확히 명령 줄은 아니지만 필요에 따라 개조 할 수 있습니다. 이미지를 ASCII로 변환하는 데 사용하는 라이브러리를 Jscii 라고 합니다 .


1
이미지가 아닌 텍스트 만 출력합니다. 게다가, 그것은 명령 행 프로그램이 아닙니다
hellocatfood

2

ASCII 아트 에는 jp2a 를 사용 합니다. 명령 행에서 사용하기 간단합니다 :

jp2a --width=76 file.jpg

asciiconvert.com 에서 온라인으로 결과를 테스트 할 수 있습니다 .


jp2a가 이미 나열되어 있으며 링크가 전혀 추가하지 않습니다 (열리지 않습니다).
usr2564301

1

Linux를 사용하고있는 것으로 보이며 이미 libcaca를 알고 있습니다. 정확하게 말한 것을 수행하는 또 다른 lib가 있습니다 (명령 행에서 Ascii로 이미지) : Aalib .

많은 프로그램이 있습니다. 이것은 리눅스와 윈도우 모두에서 작동 합니다 . 외부 라이브러리, 사용 가능한 전체 소스 코드 등을 사용하지 않습니다.


내가 아는 한 Aalib은 출력을 이미지에 직접 저장할 수 없습니다. 스크린 샷과 관련된 일부 방법을 사용해야하며 큰 이미지에는 신뢰할 수 없습니다. Aalib을 사용하는 방법이 있다면 답변을 업데이트 할 수 있습니까? 언급 한 프로그램이 정말 좋아 보입니다. 배치 변환을 수행하며 명령 행 인터페이스가 있습니까?
hellocatfood 2018

1

프로그램에 명령 인터페이스가 없지만 이미지를 텍스트로 변환 한 다음 이미지로 변환한다는 것을 알고 있습니다. 소스를 사용할 수 있으므로이를 사용하여 자신의 도구를 작성할 수 있습니다.

aalib은 이미지를 출력하지 않지만 텍스트를 출력합니다. 명령 행에서 작동하는 다른 많은 프로그램뿐만 아니라.

Linux를 사용하는 경우 ascii 텍스트를 비트 맵으로 변환하는 asciitopgm이라는 명령 줄 프로그램이 있습니다. netpbm 패키지의 일부입니다.

따라서 여러 도구를 사용할 수 있습니다.

  1. 텍스트를 사용하여 이미지를 그리는 aalib
  2. 텍스트 파일로 pgm 비트 맵을 작성하는 asciitopgm
  3. (선택 사항) pgm을 원하는 다른 래스터 형식으로 변환하려면 변환 (Imagemagick 패키지에서)을 사용하십시오.

이 방법으로 원하는 것을 할 수 있다고 생각합니다.


0

예, jp2a기본적으로 jpg 이미지를 아스키 아트로 변환 하는 도구가 있습니다.

예 :

$ jp2a skull.jpg

원본 Skull.jpg

여기에 이미지 설명을 입력하십시오

출력 아스키 아트

여기에 이미지 설명을 입력하십시오

jpg 이미지를 사용해야합니다. 이미지가 다른 형식 인 경우 다음과 같이 변경할 수 있습니다

$ convert skull.png skull.jpg

1
GDSE에 오신 것을 환영합니다! 이것은 중복 답변처럼 보입니다. 편집하여 개선하거나 결국 삭제 될 수 있습니다.
호기심
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.