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

如何将图片转换为0和1组成的HTML掩码样式(附示例)

如何将图片转换为灰度字符渐变样式

这个效果是把图片转换成由不同灰度的0/1字符组成的文本图,每个字符的颜色对应原图片像素的亮度,通过分层的颜色和字符模拟出图片的明暗层次,下面是具体实现方法:

  • 核心逻辑:提取图片每个像素的亮度值,将亮度映射到对应字符(如0/1)和渐变颜色,再按图片行列结构生成带颜色标签的HTML文本。
  • 分步实现:
    1. 图片预处理:将目标图片转为灰度图,调整到合适尺寸(避免生成的文本过长)。
    2. 映射规则:把0-255的亮度值划分成若干区间,每个区间对应特定字符和颜色(示例中的#f6f8fd到#fafbff就是对应不同亮度的浅色调)。
    3. 生成HTML:用<font>标签包裹每个字符并指定对应颜色,外层用<pre>标签保留行列排版,最终输出完整的HTML代码。

你可以用Python快速实现这个功能,以下是示例脚本:

from PIL import Image

def image_to_char_html(img_path, output_html_path):
    # 打开图片并转为灰度模式
    img = Image.open(img_path).convert('L')
    # 调整图片尺寸,可根据需求修改宽高
    img = img.resize((80, 40))
    pixels = img.load()
    width, height = img.size
    
    # 定义亮度对应的渐变颜色列表
    colors = ['#f6f8fd', '#f7f8fd', '#f8f9fd', '#f9fafe', '#fafbff']
    # 定义亮度对应的字符集
    chars = ['1', '0']
    
    html_content = '<pre>'
    for y in range(height):
        row_content = ''
        for x in range(width):
            # 获取当前像素的亮度值(0最暗,255最亮)
            brightness = pixels[x, y]
            # 计算颜色索引,确保不越界
            color_idx = min(int(brightness / (256 / len(colors))), len(colors)-1)
            # 计算字符索引
            char_idx = min(int(brightness / (256 / len(chars))), len(chars)-1)
            row_content += f'<font color="{colors[color_idx]}">{chars[char_idx]}</font>'
        html_content += row_content + '\n'
    html_content += '</pre>'
    
    # 将生成的HTML写入文件
    with open(output_html_path, 'w', encoding='utf-8') as f:
        f.write(html_content)

# 调用示例:替换为你的图片路径和输出路径
image_to_char_html('input_image.png', 'output.html')

运行脚本后,打开生成的output.html就能看到类似目标网站的效果,你可以根据实际需求调整颜色列表、字符集或图片尺寸。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:01:03