如何在Python中压缩图像?

时间:2019-04-08 02:38:15

标签: python

我正在研究一个图像传输项目,其中我的JPEG图像必须通过LoRa传输,因此存在很多限制。

我正在按小块传输图像,但是它们的实际大小还不够好,我无法通过分割图像来减小它们的单个大小,因为发送每个块的时间很重要。

因此,我正在寻找替代方法来压缩这些小块的数据,但是在Python中没有发现任何可让我对装有Pillow的图像进行压缩的东西。

请注意,我不想调整图像的大小,只是为了压缩它的数据。

我正在寻找有关如何执行此操作的建议。

必须说,如有必要,我可以改变使用枕头的想法。

一个奇怪的影响正在发生,我不知道为什么是我从来没有得到少于600字节的块。我需要接近300个字节的内容。

预先感谢, 蒂亚戈

1 个答案:

答案 0 :(得分:1)

PNG和JPEG等现代图像格式已经被压缩,我的一般建议是接受Brendan Long的建议,并使用这些格式并利用其中的所有工作。

也就是说,如果要压缩Python中任意文件的内容,下面是一个非常简单的示例:

import zlib

with open("MyImage.jpg", "rb") as in_file:
    compressed = zlib.compress(in_file.read(), 9)

with open("MyCompressedFile", "wb") as out_file:
    out_file.write(compressed)