有没有办法使用Python通过LZMA压缩图像。预先存在的包可以压缩文本文件,但我无法找到任何方法对图像进行压缩。任何帮助都是伟大的!
谢谢!
发布于 2022-08-09 08:07:22
import lzma
data = b"Insert Data Here"
with lzma.open("file.xz", "w") as f:
f.write(data)
请注意数据是字节(b-前缀),因此您可以以二进制模式读取任何文件,并将其内容作为data
使用,例如,如果您有一个名为image.png
的文件,则可以这样做。
import lzma
with open("image.png", "rb") as f:
data = f.read()
with lzma.open("image.png.xz", "w") as f:
f.write(data)
发布于 2022-08-09 08:04:53
预先存在的包使用bytes
类型,它可以表示任何二进制数据,而不仅仅是文本。你只需要有你的图像以那种格式。如果您的映像已经存储在文件系统中,则应该这样做:
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)
发布于 2022-08-09 08:05:42
当然,首先使用opencv使用img = cv2.imread()读取图片,然后img值无论如何变成一个numpy列表,然后将这个numpy列表转换为python列表,然后您可以将列表保存在db或任何地方作为文本。
https://stackoverflow.com/questions/73288359
复制相似问题