将numpy数组保存为具有jpg格式的io.BytesIO

时间:2016-09-22 14:18:07

标签: python excel opencv numpy

我正在使用xlsxwriter将图像插入到python代码中的excel中。

现在,我在opencv进程之后有了图像数据(numpy数组)。我想将此图像数据插入excel。但是xlswriter只支持io.BytesIO流。

问题:我不知道如何使用jpg格式将numpy数组转换为io.BytesIO

我尝试了numpy.tostring但没有jpg格式。

代码在下面运行良好: _f = open('test.jpg') # I would like to insert test.jpg worksheet.insert_image('E2', 'abc.jpg', {'image_data': _f.read()})

任何人都可以帮助我吗?非常感谢你。

2 个答案:

答案 0 :(得分:3)

最后,我找到了解决方案。 我们可以使用Scanner scan = new Scanner(System.in); int j = scan.nextInt(); double e = scan.nextDouble(); scan.nextLine(); String str = scan.nextLine(); 函数将numpy数组转换为jpg格式。

让我们关闭这个问题。

答案 1 :(得分:2)

将numpy数组转换为PIL Image结构,然后使用BytesIO存储编码的图像。

img_crop_pil = Image.fromarray(numpy_image)
byte_io = BytesIO()
img_crop_pil.save(byte_io, format="JPG")
png_buffer = byte_io.getvalue()
byte_io.close()