利用PIL库计算打印机打印页面覆盖率

  • 打印机硒鼓页产量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%了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

崇赛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值