[英]How can I save a figure in tiff with 600 dpi with compression using matplotlib?
最近,我決定從MATLAB移植到Matplotlib來繪制圖形。 在MATLAB中,我要做的只是轉到文件>導出>渲染,然后選擇600 dpi,然后選擇應用於圖形然后導出。 在Matplotlib中,我正在使用matplotlib庫中的命令savefig作為
matplotlib.pyplot.savefig(fname, dpi=None, facecolor='w', edgecolor='w',
orientation='portrait', papertype=None, format=None,
transparent=False, bbox_inches=None, pad_inches=0.1,
frameon=None).
然后將dpi設置為600,並將.tiff設置為輸出格式。 除了文件很大〜32 mb以外,此方法都可以正常工作。 好吧,顯然,我不能在日記手稿中使用這么大的文件。 我想知道是否有一種將壓縮合並到文件中的方法,以便可以以較小的尺寸獲得圖像文件,而不會降低分辨率。
截至目前,無法為tiff
格式添加壓縮。 有一個未解決的問題和一個可行的解決方案,但是自去年5月左右以來沒有取得進展。
在工作的解決方案中,有一個建議的工作流程和報價
...使用MPL生成巨大的TIFF圖像文件,然后將其導入PIL,使用TIFF壓縮將其保存在PIL中,然后丟棄未壓縮的TIFF文件。
scikit-image項目具有一些帶有壓縮功能的 tiff
圖像保存功能 ,它可能會根據您的使用情況為您提供幫助。
該期刊很可能接受tiff
以外的其他格式。 然后,您可以使用DPI為600的png
或jpeg
,基本上可以滿足所有日記目的。
從matplotlib
版本3.1.0開始,現在可以通過kwarg pil_kwarg
保存圖形時直接將參數傳遞給PIL :
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
fig.savefig('/tmp/foo.tiff', dpi=600, format="tiff", pil_kwargs={"compression": "tiff_lzw"})
但是要小心輸入錯誤,因為savefig
似乎會默默地吞下不受支持的pil_kwargssss
,例如pil_kwargssss
...
此PR中引入了此功能,該功能取代了Ignacio Vergara Kausel在其響應中鏈接的PR 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.