1

일부 ASCII 아트의 일괄 처리를하고 있으며 현재 아트를 생성하는 C++ 응용 프로그램이 있습니다. , 나는 다음과 같은 명령을 통해 하나의 애니메이션 GIF로 .PNG 파일을 결합 마지막으로ImageMagick에서 문자 별 색상으로 텍스트 레이블 만들기

convert -font Courier \"label:@input.txt\" output.png 

: 나는 다음 명령을 통해 ImageMagick를 통해 텍스트 파일을 실행 내가하고 싶은 무엇

convert *.png -set delay 100 MOVIE.GIF 

첫 번째 단계에서 생성 된 .PNG 레이블 파일에 모두 # 문자가 초록색으로 표시되고 모두 * 문자가 빨간색으로 표시됩니다. 어떻게해야합니까?

또한 위와 같은 패턴을 사용하지 않고 n 번째 문자를 특정 색상으로 설정할 수 있습니까? 예를 들어 텍스트의 단락에 HSV 스펙트럼 또는 임의의 색상 패턴을 그리는 것입니다.

감사합니다.

답변

2

은이 문제에 대한 귀하의 친구입니다. 나는 위의 예는 한 줄에 단순화 할 수 있는지 해요 -fill 플래그

Character-specific colors in ImageMagick

cat > input.txt <<EOF 
############# 
# * * * * * # 
#* * * * * *# 
############# 
this is black 
EOF 
cat input.txt | sed 's/[\#\*]/ /g' > input.black.txt 
cat input.txt | sed 's/[^\#]/ /g' > input.green.txt 
cat input.txt | sed 's/[^\*]/ /g' > input.red.txt 
convert -background transparent -font Courier \ 
     -fill black label:@input.black.txt \ 
     -fill green label:@input.green.txt \ 
     -fill red label:@input.red.txt \ 
     -flatten output.png 
각 색상 채널을 추출하는 파일을 구문 분석하고 조정한다. 그리고 n 번째 문자에서 sed 대체에 대해 this answer을 참조하십시오.

+0

나는이 대답을 좋아한다 :-) –

+0

이것은 매우 유용하고 철저한 대답이다. 고마워요! – DevNull

관련 문제