我有一个情节,并通过以下方式将背景设置为透明:
set(gcf, 'Color', 'None');
set(gca, 'Color', 'None');
当我尝试保存图像(来自观看者)时,我保存为.png,但它保存为白色背景。如何用透明背景保存?
谢谢
我有一个情节,并通过以下方式将背景设置为透明:
set(gcf, 'Color', 'None');
set(gca, 'Color', 'None');
当我尝试保存图像(来自观看者)时,我保存为.png,但它保存为白色背景。如何用透明背景保存?
谢谢
这是令人失望的,但MATLAB是默认的 saveas
和 print
命令无法很好地处理透明事物。你必须用一些背景保存它然后转换它 imread
/imwrite
或其他一些工具。
有些工具可能会有所帮助:
我更喜欢矢量图形,所以在需要透明度时使用svg exports。如果你确实有位图,请使用 imwrite(bitmapData, 'a.png', 'png', 'transparency', backgroundColor)
。
这是令人失望的,但MATLAB是默认的 saveas
和 print
命令无法很好地处理透明事物。你必须用一些背景保存它然后转换它 imread
/imwrite
或其他一些工具。
有些工具可能会有所帮助:
我更喜欢矢量图形,所以在需要透明度时使用svg exports。如果你确实有位图,请使用 imwrite(bitmapData, 'a.png', 'png', 'transparency', backgroundColor)
。
所以我仍然想要一些简单的东西,不需要我安装任何其他东西(公司电脑不允许:/)。我偶然发现了 这个链接,陈述:
您所要做的就是以下内容
1)在matlab文件中添加命令以使用透明背景格式化您的图形
set(gcf, 'color', 'none');
set(gca, 'color', 'none');
并保存或导出以eps格式生成的数字。 (比如Bspline.eps)
2)在NotePad中打开Bspline.eps
3)看第一行。例如 %!PS-Adobe-3.0 EPSF-3.0
。最后一个数字3.0表示Postscript级别。对于级别3,搜索字符串 rf
。你会发现像这样的一行(四个数字后面跟着 rf
)
0 0 3025 2593 rf%注释使用%的行。
(对于2级搜索字符串 pr
代替 rf
)
保存文件。
现在您可以使用eps文件,也可以将其转换为pdf然后使用它。 无论如何它将具有透明背景
额外
对我来说这是两行 re
尽管我有两条线 %!PS-Adobe-3.0 EPSF-3.0
就在彼此之后。但结果是 Figure
现在透明了。
自MATLAB 2014b发布以来,情况发生了变化。新实现的图形系统(所谓的HG2,Handle Graphics版本2)在透明度方面做得更好。
现在它至少可以正确地为SVG保存透明度!