如何在GR.jl的savefig()中设置输出文件尺寸?
控制GR.jl中savefig的输出图像尺寸匹配原图像分辨率
问题出在GR的imshow会自动将图像拉伸适配当前绘图窗口的尺寸,而savefig默认保存的是整个绘图窗口的内容,不是原图像的像素分辨率。要让保存的文件和原图像300x300的尺寸一致,有两种可行方案:
方案一:同步设置绘图窗口与原图像尺寸
先通过setws()函数将绘图窗口的像素尺寸设置为和原图像一致,再执行imshow和savefig,这样保存的内容就会匹配原图像的尺寸:
using GR img = rand(300, 300) # 设置绘图窗口为300x300像素 setws(300, 300) imshow(img) savefig("img.png")
方案二:直接写入图像文件(无需显示窗口)
如果不需要在屏幕上显示图像,直接用imwrite()函数可以将图像数组以原分辨率写入文件,跳过窗口适配的步骤:
using GR img = rand(300, 300) # 直接保存原尺寸图像 imwrite("img.png", img)
注意:如果使用方案一,确保在imshow之前调用setws,否则窗口已经创建后再修改尺寸可能不会生效。另外,GR的窗口尺寸单位为像素,和原图像的像素维度一一对应即可。
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

