私はプロットを持っていて、背景を透明に設定しています:
set(gcf, 'Color', 'None');
set(gca, 'Color', 'None');
(ビューアから)画像を保存しようとすると、.pngとして保存しますが、背景が白で保存されます。どうすれば透明な背景で保存できますか?
ありがとう
残念ですが、MATLABのデフォルトのsaveas
およびprint
コマンドは、透過的なものをうまく処理できません。バックグラウンドで保存してから、imread
/imwrite
またはその他のツールを使用して変換する必要があります。
役立つかもしれないいくつかのツールがあります:
私はベクターグラフィックスを好むので、透明度が必要な場合はsvgエクスポートを使用します。実際にビットマップがある場合は、imwrite(bitmapData, 'a.png', 'png', 'transparency', backgroundColor)
を使用します。
MATLAB 2014bリリース以降、状況は変更されています。新しく実装されたグラフィックスシステム(いわゆるHG2、Handle Graphicsバージョン2)は、透過性の点ではるかに優れています。
透明度を少なくともSVGに正しく保存するようになりました!
だから私はまだ何かをインストールする必要のないシンプルなものを望んでいました(企業の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 %%を使用してその行にコメントを付けます。
(レベル2では、文字列pr
ではなくrf
を検索します)
ファイルを保存します。
これで、epsファイルを使用したり、pdfに変換して使用したりできます。とにかく透明な背景になります
追加
私にとっては、%!PS-Adobe-3.0 EPSF-3.0
が直後にあったにもかかわらず、re
を含む2行と2行でした。しかし、その結果、Figure
は透過的になりました。