本帖最后由 helian147 于 2024-2-28 20:17 编辑
1、问题描述:
【此处是对图像格式的背景色修改,不是文字页面的背景色】
UnicornViewer阅读器,可以设置强制透明,并将背景色设置为指定颜色、或指定底纹;
下图是设置指定背景颜色:
下图是设置指定背景底纹:
SumatraPDF阅读器,可以在设置-高级选项中,将背景色设置为指定颜色。
2、问题
这是如何做到的?速度很快,应该不是对像素的修改。
【只需要给出提示即可,代码更佳】
PIL.Image按像素处理的话,速度太慢,不太可能:例如下面代码
[Python] 纯文本查看 复制代码 def transparent_back(img):
img = img.convert('RGBA') # 图片转换为四通道。第四个通道就是要修改的透明度。返回新的对象
L, H = img.size # 获取图片尺寸
color_0 = img.getpixel((0,0)) # 返回图片(0,0)点 某个坐标点颜色,后面以此点颜色为基准处理
for h in range(H): # 按图片尺寸,对每个像素点进行处理
for l in range(L):
dot = (l,h)
color_1 = img.getpixel(dot) # 获取被处理点的颜色
if color_1 == color_0: # 如果颜色相同,就修改
color_1 = color_1[:-1] + (0,) # 元组(255,255,255,255)改(255,255,255,0)最后通道修改
img.putpixel(dot,color_1) # 修改此坐标点的颜色,没有返回值,直接修改img
return img
|