15

Matlab にプロットがあり、次の方法で背景を透明に設定しています。

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

画像を(ビューアーから)保存しようとすると、「.png」として保存されますが、白い背景で保存されます。背景を透明にして保存する方法を教えてください。

4

6 に答える 6

12

残念ですが、MATLAB のデフォルトsaveasprintコマンドは透過的なものをうまく処理できません。バックグラウンドで保存してから、imread/imwriteまたは他のツールを使用して変換する必要があります。

役立つツールがいくつかあります。

私はベクター グラフィックスを好むので、透過性が必要な場合は svg エクスポートを使用します。実際にビットマップがある場合は、を使用してimwrite(bitmapData, 'a.png', 'png', 'transparency', backgroundColor)ください。

于 2013-04-21T18:48:05.433 に答える
4

MATLAB 2014b リリース以降、状況が変わりました。新しく実装されたグラフィック システム (Handle Graphics バージョン 2 の HG2 と呼ばれる) は、透過性の点ではるかに優れています。

透明度を少なくとも SVG に正しく保存するようになりました。

于 2015-05-26T21:14:38.003 に答える
3

そのため、他に何もインストールする必要のないシンプルなものが必要でした(企業のPCは許可されていません:/)。私はこのリンクに出くわし、次のように述べています。

あなたがしなければならないのは次のことだけです

1)matlabファイルに、図を透明な背景でフォーマットするコマンドを追加します

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

生成された図を eps 形式で保存またはエクスポートします。(Bspline.eps と言います)

2) メモ帳で Bspline.eps を開きます

3) 最初の行を見てください。たとえば%!PS-Adobe-3.0 EPSF-3.0。最後の数字 3.0 は Postscript レベルを示します。レベル 3 については、文字列を検索しますrf。このように 1 行で見つかります (4 つの数字の後にrf)

0 0 3025 2593 rf %% を使用してその行にコメントを付けます。

pr(レベル 2 の場合は、代わりに文字列を検索しますrf)

ファイルを保存します。

これで、eps ファイルを使用するか、pdf に変換してから使用することができます。とにかく、背景が透明になります

追加

私にとっては、2 つの行reと 2 つの行%!PS-Adobe-3.0 EPSF-3.0でした。しかし、結果はFigure透明になりました。

于 2016-05-23T07:49:52.483 に答える