【发布时间】:2018-06-03 22:14:00
【问题描述】:
我有一个 800x800 RGB 位图,文件大小为 2501 KB,并执行以下操作(使用 python 3.6):
(很遗憾我不能分享图片)
from PIL import Image
import numpy as np
im = Image.open('original_image.bmp')
im.save("test_size_manual.bmp", "BMP")
由于某种原因,新文件只有 1876 KB。即使文件大小不同,以下内容仍然成立:
import matplotlib.pylab as plt
original_image = plt.imread('original_image.bmp')
test_size_image = plt.imread('test_size_manual.bmp')
assert (original_image == test_size_image).all()
这意味着每个像素得到的 numpy.ndarray 是相同的。从谷歌图像上发现的 800x800 bmp 的“随机”采样中,大多数与新图像具有相同的文件大小,1876 KB,但也至少有一个与原始图像具有相同的文件大小,2501 KB。
是什么导致了文件大小的这种差异,或者您将如何找出答案?
【问题讨论】:
标签: python image bitmap file-format