背景を透明('non​e')にしたプロット​のみのFigureを​.pngもしくは.t​ifで出力するにはど​うすれば良いですか.

figure('Color','none') で生成してプロットを行い, axis off で軸を消去したFigureを背景透明のまま.pngもしくは.tifするにはどうすれば良いですか. 背景が透明のままクリップボードへのコピーは可能なのですが,出力した画像ファイルには白の背景色がついてしまいます.

2 Commenti

michio
michio il 15 Nov 2017
使用されているMATLABのバージョン (R2017bなど)はいくつですか?
Ken
Ken il 15 Nov 2017
R2016bです

Accedi per commentare.

Risposte (1)

mizuki
mizuki il 15 Nov 2017
Modificato: mizuki il 15 Nov 2017

1 voto

この問題は Figure の仕様です。 ドキュメントの Figure の外観 の Color セクションに、次のような文章があります。
'none' を指定した場合、背景色は画面上では黒く表示されますが、Figure を印刷するとその背景は Figure ウィンドウが透明であるかのように印刷されます。
'Color' プロパティを 'none' に設定すると、透明で印刷 (今回の場合は png化) されてしまうため、色は明示的に設定する必要があります。
今回の出力は白に見えていますが、ご希望の内容の透明色という png ができているのではないかと思います。

4 Commenti

Ken
Ken il 15 Nov 2017
Figure上では背景が黒く表示され,Figureの編集で"Figure"をクリップボードにコピーしたものについては背景が透明になっているのですが,png形式で保存された画像ファイル上では白い背景がついてしまいます.
mizuki
mizuki il 15 Nov 2017
Modificato: mizuki il 15 Nov 2017
Figure の InvertedHardcopy プロパティを off にする方法ではいかがでしょうか。 以下、サンプルコードです。下から2行目のコードを追加してみてください。
figure('Color','none')
plot(rand(5,5), 'o')
axis off
print('plot_png01','-dpng')
set(gcf,'InvertHardcopy','off')
print('plot_png02','-dpng')
以下を参考にしました。
Ken
Ken il 16 Nov 2017
上記のコードを参考にして実行したところ,背景が黒のpngが保存されました.背景透明色画像の出力はMATLABではできない仕様なのでしょうか...
mizuki
mizuki il 28 Dic 2017
透明のままクリップボードにコピーすることはできますが、透明の状態のままでは png には保存できないと思われます。
MATLABはデータを行列として持つため、保存時にはどうしても白あるいは黒といったように値を持つ必要があります。

Accedi per commentare.

Prodotti

Richiesto:

Ken
il 14 Nov 2017

Commentato:

il 28 Dic 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!