【python】图片着色后存储为“JPEG”格式存在明显色差的测试

我也是最近刚学Python不久,最近一直在研究图像处理这一块,于是做了一个小测试,结果在python着色这块,让我有了新的发现和一些新的认识,通过测试结果表明,对于着色后存储为不同格式的图片的效果有着明显的颜色差别,准确的说是图像精度的差别。

下面是我测试“JPEG”格式的代码:

 

from PIL import Image
a=Image.open("pic.jpg")
for n in range(128):
	for x in range(128):	
		i=a.putpixel((x,n),(0,0,255))
		for y in range(128):			
			j=a.putpixel((n,y),(255,0,0))
a.save("pic1.jpg","JPEG")
b=Image.open("pic1.jpg")
m=b.getpixel((66,66))
print(m)
b.show()

运行以后发现,新生成的图片在图片两种颜色分界线附近存在明显杂点,颜色有明显偏差,而图片大小1.49KB较之前纯白色(128*128,分辨率72dpi),文件大小12.7KB相比,远远小于之前的:
 

 

于是我又将代码做了如下修改,将“JEPG”格式改为“bmp”格式,再次运行:

 

from PIL import Image
a=Image.open("pic.jpg")
for n in range(128):
	for x in range(128):	
		i=a.putpixel((x,n),(0,0,255))
		for y in range(128):			
			j=a.putpixel((n,y),(255,0,0))
a.save("pic1.bmp","bmp")
b=Image.open("pic1.bmp")
m=b.getpixel((66,66))
print(m)
b.show()

 

 

结果杂色不见了,测试结果的颜色也是纯色的了,而新生成的bmp格式图片大小也变成了48kB。

针对以上测试结果,于是我百度了一下,发现:BMP是无损存储,也就是不压缩。JPEG就是jpg的全称,支持最高级别的压缩,是有损的。

所以我的建议是,在利用Python做图像处理开发的时候,如果对处理的结果精度要求不太高的话,建议存储为“jpg”格式,如果有无损精度的要求,建议都存储为无损格式“bmp”。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一只仰泳的咸鱼

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

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

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

打赏作者

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

抵扣说明:

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

余额充值