【问题标题】:Converting Image to Bytearray with Python使用 Python 将图像转换为字节数组
【发布时间】:2020-11-02 22:06:58
【问题描述】:

我想将图像文件转换为字节数组。我使用 minecart lib 从 pdf 文件中提取图像,但找不到将其转换为 bytearray 的方法。这是我的代码:

import minecart
from PIL import Image
import io

pdffile = open('sample6.pdf', 'rb')
doc = minecart.Document(pdffile)


for page in doc.iter_pages():
    print(page)
    img = page.images[0].as_pil()

    print(img) # <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=1641x2320 at 0x7FBDF02E6A00>

    print(type(img)) # <class 'PIL.JpegImagePlugin.JpegImageFile'>

我曾尝试使用bytearray(img),但它不起作用。 您对此有解决方案吗(不会花费太多时间的解决方案)?

【问题讨论】:

    标签: python image pdf


    【解决方案1】:

    创建io.BytesIO 缓冲区并使用PIL.Image.save 写入它。根据需要设置适当的质量和其他参数。

    import io
    from PIL import Image
    
    def convert_pil_image_to_byte_array(img):
        img_byte_array = io.BytesIO()
        img.save(img_byte_array, format='JPEG', subsampling=0, quality=100)
        img_byte_array = img_byte_array.getvalue()
        return img_byte_array
    

    参考资料:

    Why is the quality of JPEG images produced by PIL so poor?

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 1970-01-01
      • 2015-08-16
      • 2013-05-19
      • 1970-01-01
      • 2018-11-30
      • 1970-01-01
      相关资源
      最近更新 更多