【发布时间】:2018-02-07 08:23:47
【问题描述】:
我正在构建一个名为hips 的库,其中一个模块涉及获取平铺图像并将它们存储在磁盘上。这里的问题是我从remote URL 获取一个图块并使用scipy.misc.imsave 函数将其保存在一个临时目录中。保存的文件大小是41.0 kB,但是,如果我从remote URL手动保存文件,它的大小是119.7 kB。
我复制了下面失败的测试用例:
def test_fetch_read_write_jpg(self, tmpdir):
meta = HipsTileMeta( ... )
url = 'http://alasky.unistra.fr/2MASS/H/Norder6/Dir30000/Npix30889.jpg'
tile = HipsTile.fetch(meta, url)
filename = str(tmpdir / 'Npix30889.jpg')
tile.write(filename)
tile2 = HipsTile.read(meta, filename=filename)
print(tile.data.shape)
print(tile2.data.shape)
assert tile == tile2
这是失败的断言:
----------------------捕获的标准输出调用--------- ----------------------------------------
(512, 512, 3)
(512, 512, 3)
错误
tile存储涉及的代码如下:
from scipy.misc import imsave
def write(self, filename: str = None) -> None:
path = Path(filename) if filename else self.meta.full_path
imsave(str(path), self.data)
我还尝试使用 PIL.Image 库保存文件,使用以下代码:
from PIL import Image
image = Image.fromarray(self.data)
image.save(str(path))
但是,它会产生相同的结果。我尝试打印出索引[0][0] 处的平铺数据,这两种情况都为[10, 10, 10]。另外,我使用matplotlib 显示图像,结果是相同的。但是,我无法弄清楚尺寸/质量减少的原因。
【问题讨论】:
标签: python scipy python-imaging-library