먼저 그레이스케일을 시뮬레이션하는 데 문제가 있습니다. 공식은 다음과 같습니다.
1 |
Gray = 0.2126 × R + 0.7152 × G + 0.0722 × B |
이것은 다루기 쉽습니다. 물론 RGB 모드에서는 256x256x256의 색상 범위가 256의 회색조 범위로 변환되지만 문자는 여전히 일대일 대응이 아닙니다. 여러 회색조에 해당하는 문자 하나를 사용하여 이 문제를 해결할 수 있습니다.
먼저 다음을 포함하여 PIL 라이브러리를 설치해야 합니다.
Python 2인 경우 pip install PIL
을 실행하세요. pip install PIL
。
如果是Python 3,运行 pip install pillow
。
接下来直接上代码吧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
from PIL import Image #设置显示的字符集 ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") WIDTH = 130 HEIGHT = 50 def get_char(r,g,b,alpha = 256): if alpha == 0: return ' ' length = len(ascii_char) gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (255.0 + 1)/length return ascii_char[int(gray/unit)] if __name__ == '__main__': img = "E:/WindowsDocuments/G7/Desktop/1.png" im = Image.open(img) im = im.resize((WIDTH,HEIGHT), Image.NEAREST) txt = "" for i in range(HEIGHT): for j in range(WIDTH): txt += get_char(*im.getpixel((j,i))) txt += '\n' print(txt) |
如果想要输出到文件,可以在定义的部分,加上想要保存的文件名 OUTPUT = 'output.txt'
pip install Pillow
를 실행하세요. 파일로 출력하고 싶다면 정의 부분 OUTPUT에 저장하고 싶은 파일 이름을 추가하면 됩니다. = 'output.txt'
, 그리고 마지막에 다음을 입력합니다:
위 내용은 Python을 사용하여 그림을 문자 그림으로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!