pillow常见操作汇总
-
pil读取图像
PIL(Python Imaging Library)是一个用于图像处理的Python库。您可以使用它来读取、处理和操作图像文件。下面是一个示例代码,展示了如何使用PIL库来读取图像:
from PIL import Image
# 打开图像文件
image_path = "path_to_your_image.jpg" # 替换为您的图像文件路径
image = Image.open(image_path)
# 显示图像信息
print("图像格式:", image.format)
print("图像大小:", image.size)
print("图像模式:", image.mode)
# 显示图像
image.show()
在这个示例中,您需要将 path_to_your_image.jpg
替换为您实际的图像文件路径。代码首先使用 Image.open()
函数来打开图像文件,然后可以使用各种属性和方法来访问图像的信息,如格式、大小和模式。最后,使用 image.show()
来显示图像。
-
pil读取png图片并对png图片透明区域填充颜色,转为rgb格式
您可以使用 Python 的 PIL(Python Imaging Library)库来读取 PNG 图像,并对图像的透明区域进行颜色填充。以下是一个示例代码,展示了如何实现这个操作:
from PIL import Image
# 打开 PNG 图像
image = Image.open("example.png")
# 检查图像是否具有 alpha 通道(透明通道)
if image.mode in ("RGBA", "LA") or (image.mode == "P" and "transparency" in image.info):
# 创建一个新的 RGB 图像,背景颜色为指定的填充颜色
background_color = (255, 0, 0) # 填充颜色为红色
new_image = Image.new("RGB", image.size, background_color)
# 将原图像覆盖在新图像上,透明区域会显示填充颜色
new_image.paste(image, (0, 0), image)
# 保存结果图像
new_image.save("filled_image.png")
else:
print("图像没有透明通道,无需填充颜色。")
在这个示例中,我们首先使用 Image.open()
函数打开 PNG 图像。然后,我们检查图像是否具有透明通道。如果图像具有透明通道,我们创建一个新的 RGB 图像,指定背景颜色作为填充颜色,然后使用 paste()
方法将原图像覆盖在新图像上,透明区域会显示填充颜色。最后,我们使用 save()
方法保存结果图像。
请注意,这个示例中的填充颜色是 (255, 0, 0)
,即红色。您可以根据需要更改为其他颜色。
pil 取图像0,0位置上的像素值
要使用 PIL(Python Imaging Library)获取图像的特定像素值,您可以使用图像对象的 getpixel()
方法。以下是如何获取图像位置 (0, 0) 处的像素值的示例代码:
from PIL import Image
# 打开图像
image = Image.open("image.png")
# 获取位置 (0, 0) 处的像素值
pixel_value = image.getpixel((0, 0))
print("位置 (0, 0) 处的像素值:", pixel_value)
在这个示例中,我们首先使用 Image.open()
打开图像。然后,我们使用 getpixel((x, y))
方法来获取图像位置 (x, y) 处的像素值。对于位置 (0, 0),我们传递元组 (0, 0)
作为参数。
getpixel()
方法返回一个元组,其中包含图像的各个通道的像素值。例如,对于 RGB 图像,返回的元组是 (R, G, B)
。
Numpy数组转Image图像
如果您的 NumPy 数组带有通道(例如形状为 (14, 15, 3) 的 RGB 图像数据),您可以使用 PIL 的 Image.fromarray()
方法进行转换,但需要确保 NumPy 数组的数据类型正确以及通道的顺序。以下是如何将带有通道的 NumPy 数组转换为 PIL 图像的示例代码:
from PIL import Image
import numpy as np
# 创建一个尺寸为 (14, 15, 3) 的示例数组(RGB 图像数据)
array_rgb = np.random.randint(0, 256, size=(14, 15, 3), dtype=np.uint8)
# 将 NumPy 数组转换为 PIL 图像对象
pil_image = Image.fromarray(array_rgb)
# 保存为图像文件
pil_image.save("numpy_to_pil_image.png")
# 显示图像
pil_image.show()
在这个示例中,我们首先使用 np.random.randint()
创建一个示例的 (14, 15, 3) 形状的 RGB NumPy 数组。然后,我们使用 Image.fromarray()
将 NumPy 数组转换为 PIL 图像对象。确保数据类型是 np.uint8
,以确保数据范围正确。
如果在转换过程中遇到问题,可能是因为数据类型、数据范围或通道顺序不正确。请确保 RGB 通道的顺序是 R、G、B,且数据类型正确,然后尝试使用 Image.fromarray()
再次转换。
pil图像转numpy后的尺寸
在将 PIL(Python Imaging Library)图像转换为 NumPy 数组时,NumPy 数组的尺寸将反映图像的高度和宽度。对于 RGB 图像,尺寸还将包括通道数。
以下是将 PIL 图像转换为 NumPy 数组后,NumPy 数组的尺寸表示:
- 对于灰度图像(单通道):NumPy 数组的形状将是
(高度, 宽度)
。 - 对于 RGB 图像(三通道):NumPy 数组的形状将是
(高度, 宽度, 通道数)
。
以下是示例代码,展示了如何将 PIL 图像转换为 NumPy 数组,并查看其尺寸:
from PIL import Image
import numpy as np
# 读取图像
image = Image.open("image.png")
# 将 PIL 图像转换为 NumPy 数组
image_array = np.array(image)
# 打印 NumPy 数组的尺寸
print("NumPy 数组尺寸:", image_array.shape)
在这个示例中,我们首先使用 np.array(image)
将 PIL 图像转换为 NumPy 数组。然后,我们使用 .shape
属性来查看数组的尺寸。
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/17660985.html,如有侵权联系删除
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧