Python PIL: 读取来自字节的图片
在 Python 中,使用 PIL 库 (Pillow) 可以轻松地从字节流中读取图片。这种方法很有用,尤其是在处理网络请求、数据库获取图片数据或直接从内存中读取图片时。
如何使用 PIL 从字节中读取图片?
以下是使用 PIL 从字节流中读取图片的步骤:
-
导入必要的库:
from PIL import Image
-
获取图片字节数据: 您可以从各种来源获取图片字节数据,例如网络请求,数据库查询,文件读取等等。假设您已经获得了图片字节数据,并将其保存在名为
image_bytes
的变量中。 -
使用
Image.open()
方法读取图片:image = Image.open(io.BytesIO(image_bytes))
示例代码:
from PIL import Image
import io
# 假设您已经获取了图片字节数据
image_bytes = b'...'
# 从字节流中读取图片
image = Image.open(io.BytesIO(image_bytes))
# 显示图片
image.show()
解释:
io.BytesIO(image_bytes)
创建了一个类似文件的对象,该对象包含图片字节数据。Image.open()
函数接收这个类似文件的对象作为参数,并返回一个 PIL 图片对象。
其他操作:
一旦您成功读取了图片,就可以使用 PIL 提供的各种方法对图片进行操作,例如:
- 保存图片:
image.save("output.jpg")
- 获取图片尺寸:
width, height = image.size
- 修改图片格式:
image = image.convert("RGB")
- 裁剪图片:
cropped_image = image.crop((10, 10, 100, 100))
结论:
Python PIL 库提供了一个便捷的方法来从字节流中读取图片。通过使用 Image.open()
函数和 io.BytesIO()
类,您可以轻松地处理来自各种来源的图片数据。