Python Pil Image从byte中读取图片

4 min read Oct 01, 2024
Python Pil Image从byte中读取图片

Python PIL: 读取来自字节的图片

在 Python 中,使用 PIL 库 (Pillow) 可以轻松地从字节流中读取图片。这种方法很有用,尤其是在处理网络请求、数据库获取图片数据或直接从内存中读取图片时。

如何使用 PIL 从字节中读取图片?

以下是使用 PIL 从字节流中读取图片的步骤:

  1. 导入必要的库:

    from PIL import Image
    
  2. 获取图片字节数据: 您可以从各种来源获取图片字节数据,例如网络请求,数据库查询,文件读取等等。假设您已经获得了图片字节数据,并将其保存在名为 image_bytes 的变量中。

  3. 使用 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() 类,您可以轻松地处理来自各种来源的图片数据。