可以自学网站开发,ui设计培训排名,做网站用不用thinkphp,中山华企立方网站建设公司文章目录 Python PIL 介绍PIL 使用介绍PIL convert 介绍PIL convert 使用示例 Python PIL 介绍
PIL 是 Python Image Library 的简称。PIL 库中提供了诸多用来处理图片的模块#xff0c;可以对图片做类似于 PS#xff08;Photoshop#xff09; 的编辑。比如#xff1a;改变… 文章目录 Python PIL 介绍PIL 使用介绍PIL convert 介绍PIL convert 使用示例 Python PIL 介绍
PIL 是 Python Image Library 的简称。PIL 库中提供了诸多用来处理图片的模块可以对图片做类似于 PSPhotoshop 的编辑。比如改变图像大小、旋转图像、图像格式转换转换颜色通道图像增强直方图处理插值和滤波等等。PIL 是第三方库使用之前需要先安装。
pip install pillowPIL 使用介绍
from PIL import Image
img Image.open(dog.jpg, moder)
print(图片颜色模式, img.mode)
print(图片的格式:, img.format)
print(图片的大小:, img.size)输出结果
图片颜色模式 RGB
图片的格式: JPEG
图片的大小: (852, 639)PIL convert 介绍
Python的Pillow库允许你使用convert()方法进行图像转换。这个方法主要用于改变图像的模式mode即图像的颜色系统和位深。 这里是一个convert()方法的大致介绍
Image.convert(modeNone, matrixNone, ditherNone, palette0, colors256) mode这个参数定义了新图像的模式。常见的模式包括 L 灰度图像RGB真彩色图像RGBA带透明度的真彩色图像CMYK青色、品红色、黄色和黑色的印刷颜色等。 matrix一个可选的转换矩阵。当从RGB转换到L或者其他模式时可以用。 dither抖动选项用于将颜色从更高位深减少到更低位深的转换中。 palette当目标模式是P时定义要使用的调色板。 colors当目标模式是P时定义要使用的颜色数目。
PIL convert 使用示例
下面是如何使用 convert() 函数将常见的图像转换为 RGB565RGB666RGB888等格式的例子。需要注意的是Pillow库直接不支持RGB565或RGB666这类模式因为这些不是标准的图像模式。但是我们可以使用位操作将Pillow中的标准RGB图像转换为这些格式的等价表示。
以下是一个将图像转换为RGB888这是正常的RGB模式RGB565和RGB666的例子
from PIL import Image
# 打开一个图像文件
img Image.open(input.jpg).convert(RGB) # 将图像转换为RGB888这其实就是标准的RGB模式
rgb888_img img # 自定义一个函数将RGB888转换为RGB565 def convert_to_rgb565(r, g, b): # 将红色从8位转换为5位绿色从8位转换为6位蓝色从8位转换为5位 return ((r 0xF8) 8) | ((g 0xFC) 3) | (b 3) # 自定义一个函数将RGB888转换为RGB666
def convert_to_rgb666(r, g, b): # 将红色绿色和蓝色都从8位转换为6位 return ((r 0xFC) 4) | ((g 0xFC) 2) | (b 0xFC) # 使用自定义的转换函数将每个像素转换为RGB565或RGB666
rgb565_data [convert_to_rgb565(*pixel) for pixel in img.getdata()]
rgb666_data [convert_to_rgb666(*pixel) for pixel in img.getdata()] # 将转换后的数据保存或使用
# 注意这些数据现在是整数列表不再是标准的图像格式需要进一步处理才能变为可视化的图像或写入文件 过上述代码我们可以得到代表RGB565和RGB666格式的数据。这些数据可以用于嵌入式系统或其他需要这些特定格式的平台。然而这些数据不是Pillow Image对象因此如果我们想要把它们保存到文件或以图像的形式展示出来可能需要通过其他库或自定义方法来实现。
推荐阅读 https://blog.csdn.net/Roaddd/article/details/113595449 https://www.zhihu.com/question/297015153/answer/2384830243