2013-04-21 563 views
10

我有一個情節,並通過我的背景設置爲透明:Matlab的:保存圖片與透明背景

set(gcf, 'Color', 'None'); 
set(gca, 'Color', 'None'); 

當我嘗試保存圖像(從瀏覽器),我保存爲.png,但它以白色背景節省。我怎樣才能保存透明背景?

感謝

回答

9

這是令人失望的,但是,MATLAB的默認saveasprint命令不能處理透明的東西非常好。你必須保存一些背景,然後通過imread/imwrite或其他工具進行轉換。

有一些工具可能會有所幫助:

我喜歡矢量圖形,所以使用SVG出口需要透明度的時候。如果確實有位圖,請使用imwrite(bitmapData, 'a.png', 'png', 'transparency', backgroundColor)

+2

我接受這一點,但就像在觀衆一個側面說明我去編輯>複製圖形和PowerPoint粘貼,它似乎保留透明度 – Aly 2013-04-21 19:39:27

+0

+1 plot2svg。 – bas 2013-04-21 22:40:18

+0

@Aly我猜測,是因爲它通過'emf'格式複製。也許保存爲emf將保持透明度。 (我沒有測試過我自己) – Memming 2013-04-21 23:16:25

1

自MATLAB 2014b發佈以來事情發生了變化。新實施的圖形系統(所謂的HG2,用於Handle Graphics版本2)在透明度方面做得更好。

現在它至少可以正確地保存SVG的透明度!

+0

什麼PNG? – Royi 2018-02-23 14:28:46

1

所以我仍然想要一些簡單的東西,不需要我安裝其他任何東西(企業電腦不允許:/)。我偶然發現了this link,聲明:

所有你需要做的是以下

1)在MATLAB文件添加的命令與透明背景格式化你的身材

set(gcf, 'color', 'none'); 
set(gca, 'color', 'none'); 

和保存或導出以eps格式生成的圖形。 (比如說Bspline.eps)

2)在記事本

3打開Bspline.eps)看的第一行。例如%!PS-Adobe-3.0 EPSF-3.0。最後一個數字3.0表示Postscript級別。對於3級,搜索字符串​​。你會在這樣的一行中找到(四個數字,然後是​​)

0 0 3025 2593 rf%註釋使用%的行。

(對於2級搜索字符串pr而不是​​)

保存文件。

現在您可以使用eps文件,或者您可以將其轉換爲PDF,然後使用它。 反正它會有透明背景

額外

對我來說是兩條線re和兩行,儘管我剛過具有彼此%!PS-Adobe-3.0 EPSF-3.0。但結果是Figure現在是透明的。