首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于LZMA Python的图像压缩

基于LZMA Python的图像压缩
EN

Stack Overflow用户
提问于 2022-08-09 07:59:18
回答 3查看 154关注 0票数 0

有没有办法使用Python通过LZMA压缩图像。预先存在的包可以压缩文本文件,但我无法找到任何方法对图像进行压缩。任何帮助都是伟大的!

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-08-09 08:07:22

文档提供了以下编写压缩文件的示例

代码语言:javascript
运行
复制
import lzma
data = b"Insert Data Here"
with lzma.open("file.xz", "w") as f:
    f.write(data)

请注意数据是字节(b-前缀),因此您可以以二进制模式读取任何文件,并将其内容作为data使用,例如,如果您有一个名为image.png的文件,则可以这样做。

代码语言:javascript
运行
复制
import lzma
with open("image.png", "rb") as f:
    data = f.read()
with lzma.open("image.png.xz", "w") as f:
    f.write(data)
票数 1
EN

Stack Overflow用户

发布于 2022-08-09 08:04:53

预先存在的包使用bytes类型,它可以表示任何二进制数据,而不仅仅是文本。你只需要有你的图像以那种格式。如果您的映像已经存储在文件系统中,则应该这样做:

代码语言:javascript
运行
复制
import lzma

with open('myimage.jpg', 'rb') as f:  # read bytes mode
    image_bytes = f.read()

compressor = lzma.LZMACompressor()
compressed_bytes = compressor.compress(image_bytes)
compressed_bytes += compressor.flush()

with open('myimage.jpg.lzma', 'wb') as f:
    f.write(compressed_bytes)
票数 0
EN

Stack Overflow用户

发布于 2022-08-09 08:05:42

当然,首先使用opencv使用img = cv2.imread()读取图片,然后img值无论如何变成一个numpy列表,然后将这个numpy列表转换为python列表,然后您可以将列表保存在db或任何地方作为文本。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73288359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档