簡體   English   中英

將PIL圖像轉換為bytearray

[英]Convert PIL image to bytearray

在C#中,我可以使用Bitmap.lockbits()來訪問位圖作為字節數組。 如何在PIL中執行此操作? 我嘗試過Image.write(),但是它為流寫了一個完整格式的圖像。

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()

.. 警告::

此方法從內部存儲器返回原始圖像數據。 對於壓縮的圖像數據(例如PNG,JPEG)使用:甲基: ~.save ,與存儲器內數據一個BytesIO參數。

這是tobytes方法中的警告。 因此我們可以使用帶有BytesIO參數的save方法來獲取壓縮的字節數組。

import io

byteIO = io.BytesIO()
image.save(byteIO, format='PNG')
byteArr = byteIO.getvalue()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM