hipsという名前のライブラリを構築しています。ここでは、1つのモジュールがタイルイメージを取得してディスクに格納しています。ここでの問題は、remote URLからタイルを取得し、scipy.misc.imsave機能を使用して一時ディレクトリに保存することです。保存されたファイルサイズは41.0 kB
ですが、remote URLから手動でファイルを保存すると、そのサイズは119.7 kB
になります。imsaveで縮小されたJPGイメージサイズ
私は下に失敗したテストケースをコピーした:------------------
:
ここ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
は失敗したアサーションです----------------キャプチャされたstdout呼び出し------------------------------- -------
(512、512、3)
(512、512、3)
偽
タイル保存に関わるコードを以下に示します。
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))
しかし、同じ結果が得られます。私は両方の場合について[10, 10, 10]
となったインデックス[0][0]
でタイルデータを印刷しようとしました。また、matplotlib
を使用して画像を表示したところ、結果は同じでした。しかし、私はサイズ/品質の低下の理由を理解することはできません。