J.D*_*Doe 4 python python-imaging-library
在C#中,我可以使用Bitmap.lockbits()来访问位图作为字节数组.如何在PIL中执行此操作?我尝试过Image.write(),但是它为流写了一个完整格式的图像.
.. 警告::
该方法从内部存储返回原始图像数据。对于压缩图像数据(例如 PNG、JPEG),请使用 :meth:
~.save,并为内存数据使用 BytesIO 参数。
这是tobytes方法中的警告。因此我们可以使用带有 BytesIO 参数的save方法来获取压缩的字节数组。
import io
byteIO = io.BytesIO()
image.save(byteIO, format='PNG')
byteArr = byteIO.getvalue()
Run Code Online (Sandbox Code Playgroud)
from io import BytesIO
from PIL import Image
with BytesIO() as output:
with Image.open(path_to_image) as img:
img.save(output, 'BMP')
data = output.getvalue()
Run Code Online (Sandbox Code Playgroud)