- 打印机硒鼓页产量1600页,页产量根据ISO19752标准(5%覆盖率),那么5%的覆盖率是什么概念,我们应该怎么计算呢?
- 打印机打印页面5%的覆盖率,是指常态下墨水在纸张上覆盖的面积比例,也就是墨水所覆盖的面积相对于整张打印纸面积的百分比。打印纸面积好计算,墨水所覆盖的面积即每一个字黑色部分占的面积,这就比较难计算了。如果把打印文件当成一张图片,也就是计算黑色像素占整张图片的面积,像素数应该很好数吧。
- 首先,打开PS,新建一个宽度210MM,高度297MM大小的白色的背景当成A4纸,分辨率默认就好,当然分辨率越大越准确。
- 然后找到文字工具
- 随便写点内容,保存为图片格式,我这里做了两张并且保存成了PNG文件。
- 好了,A4纸有了,下面就是用PIL的Image类,Image类的getpixel方法可以得到每个像素点的值,黑白模式下白色像素点的值是255,黑色像素点的值是0,遍历每个像素,计算黑色像素数占全部像素数的百分比,就是每一个字黑色部分占的面积即覆盖率。
- 具体实现代码
from PIL import Image
img = Image.open(r'C:\Users\Administrator\Desktop\A4纸1.png') #打开图片并实例化对象
img = img.convert('1') #1黑白模式,每字节一个像素存储
L, H = img.size
color_white = img.getpixel((0, 0)) #纸张左上角一点,应该是白色的
print(color_white)
color_white_list = [] #白色像素数目列表
color_black_list = [] #黑色像素数目列表
for h in range(H): #遍历全部像素
for l in range(L):
dot = (l, h)
color_list = img.getpixel(dot)
if color_list == color_white:
color_white_list.append(color_list)
else:
color_black_list.append(color_list)
print(len(color_black_list), len(color_white_list))
print(len(color_black_list)/(len(color_white_list)+len(color_black_list)))
#黑色像素占全部像素的百分比 格式化显示
print('{:.2%}'.format(len(color_black_list)/(len(color_white_list)+len(color_black_list))))
- 运行,看结果。
- 完成,如果只是正常的打印任务,一般是达不到5%的覆盖率;如果一张纸全部写满字,对纸张的覆盖面积就大,就要超过5%了。