You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需下载图片,直接从链接在控制台打印图片?

无需下载图片直接在控制台打印的方法

你完全可以不用把图片下载到本地文件,直接通过网络获取图片的二进制数据,再用Pillow处理后输出到控制台,下面给两种实用的实现方式:

方法一:转成ASCII字符画

这种方式兼容性强,几乎所有终端都能显示,原理是把图片转成灰度图后,将像素亮度映射为不同的ASCII字符。

import requests
from PIL import Image
from io import BytesIO

# 目标图片链接
img_url = "https://cdn.discordapp.com/avatars/826439366439993354/c107a313dba5b75dd388c2fca5df68f9.png"

# 直接获取图片的二进制数据
resp = requests.get(img_url)
resp.raise_for_status()  # 确保请求没出错

# 用BytesIO把二进制数据包装成类文件对象,传给Pillow加载
img = Image.open(BytesIO(resp.content)).convert("L")  # 转为灰度图

# 调整图片尺寸适配控制台,可根据自己终端宽度修改new_width
width, height = img.size
new_width = 80
new_height = int((height / width) * new_width * 0.5)  # 0.5是修正字符宽高比的系数
img = img.resize((new_width, new_height))

# 定义从暗到亮的ASCII字符集
ascii_chars = "@%#*+=-:. "

# 把每个像素映射成对应的ASCII字符
pixels = img.getdata()
ascii_str = "".join([ascii_chars[pixel // 25] for pixel in pixels])
# 分割成每行对应宽度的字符串
ascii_lines = [ascii_str[i:i+new_width] for i in range(0, len(ascii_str), new_width)]

# 打印结果
print("\n".join(ascii_lines))

方法二:在真彩色终端显示彩色像素块

如果你的终端支持24位真彩色(比如Windows Terminal、iTerm2、Linux下的GNOME Terminal等),可以直接打印带颜色的方块,还原度比ASCII字符画高很多。

import requests
from PIL import Image
from io import BytesIO

img_url = "https://cdn.discordapp.com/avatars/826439366439993354/c107a313dba5b75dd388c2fca5df68f9.png"

resp = requests.get(img_url)
resp.raise_for_status()
img = Image.open(BytesIO(resp.content))

# 调整尺寸适配终端
new_width = 40
width, height = img.size
new_height = int((height / width) * new_width * 0.5)
img = img.resize((new_width, new_height))

# 逐像素生成带ANSI颜色码的方块
output_lines = []
for y in range(new_height):
    current_line = []
    for x in range(new_width):
        r, g, b = img.getpixel((x, y))[:3]
        # 用ANSI 24位颜色控制码设置方块颜色
        current_line.append(f"\033[38;2;{r};{g};{b}m■\033[0m")
    output_lines.append("".join(current_line))

# 打印彩色图片
print("\n".join(output_lines))

注意事项

  • 先安装依赖库:pip install requests pillow
  • 两种方法里的new_width可以根据你的终端宽度自行调整,数值越大显示越细致
  • 第二种方法如果终端不支持真彩色,会显示乱码或者颜色异常

内容的提问来源于stack exchange,提问作者container

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:31:04