使用Python枕头库设置颜色深度 [英] Using Python Pillow lib to set Color depth

查看:0
本文介绍了使用Python枕头库设置颜色深度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Python枕头库更改图像,然后再将其发送到设备。 我需要更改图像以确保其满足以下要求

  • 分辨率(宽x高)=298 x 144
  • 灰度
  • 颜色深度(位)=4
  • 格式=.png

除了颜色深度为4位之外,我可以执行所有这些操作。 有谁能为我指出如何实现这一目标的正确方向吗?

推荐答案

到目前为止,我还无法使用枕头保存4位图像。您可以使用枕头来减少图像中的灰度数:

import PIL.Image as Image
im = Image.open('test.png')
im1 = im.point(lambda x: int(x/17)*17)
假设est.png是8位灰度图像,即它包含0-255范围内的值(im.mode==‘L’),则IM1现在只包含16个不同的值(0、17、34、...、255)。这也是ufp.Image.changeColorDepth所做的。但是,您仍然拥有一个8位图像。因此,您可以不执行上述操作,而是

im2 = im.point(lambda x: int(x/17))

最终得到的图像只包含16个不同的值(0、1、2、...、15)。所以这些值都可以放在uint4类型中。但是,如果您使用Pillow

保存这样的图像
im2.save('test.png')

PNG仍将具有8位的颜色深度(如果打开图像,您只能看到非常暗的灰色像素)。您可以使用PyPng保存一个真正的4位PNG:

import png
import numpy as np
png.fromarray(np.asarray(im2, np.uint8),'L;4').save('test4bit_pypng.png')

遗憾的是,PyPng保存图像的时间似乎要长得多。

这篇关于使用Python枕头库设置颜色深度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆