baici2021 发表于 2021-11-1 11:32:59

《将你的女神变成字符画》,没有报错,但也没有结果。

学习《将你的女神变成字符画》这节课,代码运行后,没有报错,但是也没有结果。

suchocolate 发表于 2021-11-1 11:52:04

请贴一下你的全部代码。

baici2021 发表于 2021-11-1 12:15:05

更正:不是没有结果,而是图转换的不完全。复制的代码也是一样的效果,转换出来图片有缺角,梦露也不清晰。

baici2021 发表于 2021-11-1 13:18:16

suchocolate 发表于 2021-11-1 11:52
请贴一下你的全部代码。

from PIL import Image

def pic2ascii(pic, asciis, zoom, vscale):
    img = Image.open(pic)
    out = img.convert("L")
    width, height = out.size
    out = out.resize((int(width * zoom), int(height * zoom * vscale)))
    ascii_len = len(asciis)
    texts = ''

    for row in range(out.height):
      for col in range(out.width):
            gray = out.getpixel((col, row))
            texts += asciis
      texts += '\n'

    return texts

def main():
    pic = input("请输入待转换的图片名称:")
    asciis = "@%#*+=-:. "
    zoom = 0.5
    vscale = 0.5
    texts = pic2ascii(pic, asciis, zoom, vscale)
   
    with open("ascii.txt", "w") as file:
      file.write(texts)

if __name__ == "__main__":
    main()

hrpzcf 发表于 2021-11-1 13:46:31

可能是因为记事本的字体不是等宽字体所以图像变形了,先用你的代码编辑器打开txt文件看看正不正常。

番杰 发表于 2021-11-1 13:53:15

这个是哪节课?我也想去玩一玩{:5_91:}

baici2021 发表于 2021-11-1 13:54:21

hrpzcf 发表于 2021-11-1 13:46
可能是因为记事本的字体不是等宽字体所以图像变形了,先用你的代码编辑器打开txt文件看看正不正常。

代码编辑器打开是正常的,那这个问题怎么解决呢?

baici2021 发表于 2021-11-1 14:03:41

极客python那里

hrpzcf 发表于 2021-11-1 14:37:56

baici2021 发表于 2021-11-1 13:54
代码编辑器打开是正常的,那这个问题怎么解决呢?

记事本默认字体微软雅黑不是等宽字体,不同的字符有不同的宽度,把记事本字体设置成等宽字体可以解决,比如新宋体,不过显示效果不好。或者把字符直接画到图片里,你看我的帖子imgtoch就是把字符直接画到图片上的。
页: [1]
查看完整版本: 《将你的女神变成字符画》,没有报错,但也没有结果。