12

図をMatlabからPNGに自動的にエクスポートする必要があります。私のフィギュアのサイズは600x200ピクセルです。

hFig = figure(1); 
set(hFig, 'Color', [1 1 1]); % backgroundcolor white
set(hFig, 'Position', [500 500 600 200]) % size 600x200

私は例えば試しました

print -dpng image.png

ただし、image.pngは600x200ピクセルより大きくなります。「保存」ボタンを使用してFigureウィンドウGUIから手動でFigureをエクスポートすると、うまく機能します。これを自動的に/スクリプトから実行したいと思います。ヒントをありがとう!

4

5 に答える 5

15

また、数字を保存しても画面と同じようには見えないという問題も知っています。

あなたのために働くかもしれないコマンドがありsaveasます-しかし私のためにいくつかの解像度を変えることもします。

私が知っている唯一の方法は、次のようにすべての側面を注意深く設定することです。

set(gcf,'PaperUnits','inches','PaperSize',[2,6],'PaperPosition',[0 0 2 6])
print('-dpng','-r100','test')

(つまり、用紙サイズは2x6 "で、100dpiで印刷します。そうしないと、余分な境界線ができるため、PaperPositionが重要になります。)

于 2012-06-29T12:47:57.403 に答える
4

MATLABからpngプロットを生成するための私の好ましいアプローチは、 MATLABファイル交換export_figで利用可能なユーティリティです。

次に例を示します。

set(gcf, 'Position', [100 100 500 500], 'Color', 'w')

x=0:0.01:10;
plot(x, sin(x))
set(gca, 'FontSize', 20, 'FontName', 'Arial')

export_fig 'strip-diff-far-forward.png' -painters -nocrop

これにより、20ピクセルのフォントで500x500ピクセルのpngが作成されます。内部的にはbdecafの回答と同じようなことをしていると思いますが、すべてがすでに関数にカプセル化されており、他にもたくさんの機能があります。

欠点は、-paintersレンダラー(これが最もよく見えると思います)を使用する場合、ghostscriptをインストールする必要があることです。それを台無しにしたくない場合は、に変更-paintersすることができます-opengl

今すぐ編集 フィギュアサイズを正しく設定してください!

于 2012-06-29T19:36:54.373 に答える
1

bdecafの回答に基づく:

set(gcf,'PaperUnits','inches','PaperSize',[600/96,200/96],'PaperPosition',[0 0 600/96 200/96])
print('-dpng','-r96','test')

96は私のシステムのdpiです。これにより、保存関数とまったく同じ出力が得られます。Windowsの場合、dpiは通常96、場合によっては120です。システムに応じて調整するだけです。ビーマーでは、特にシステムに120 DPIがある場合、DPIがシステムと異なる場合があることに注意してください。96 DPIは、一般的に、ビーマーにとって非常に安全な選択であると思います。システムのDPI設定を見つけるのにサポートが必要な場合はGoogle。この答えはbdecafとFlorianに基づいて99.9%なので、bdecafの答えを正しいものとして選択したままにしておきます。

編集:600 =ピクセル単位の水平方向の画像サイズ、200=ピクセル単位の垂直方向の画像サイズ

于 2012-06-29T13:48:36.847 に答える
1

Amro Answerは完全に機能します。フィギュアを生成した後、に設定PaperPositionModeするautoと、印刷サイズは画面サイズと同じになります。

set(gcf, 'PaperPositionMode','auto')   
print('-dpng','test.png')
于 2015-02-11T18:18:37.720 に答える
0

試す:

set(hFig, 'PaperPositionMode','auto')   %# WYSIWYG
print -dpng -r0 image.png               %# at screen resolution

これは、画面に表示されるのと同じサイズの画像を生成するように指示します。

于 2012-06-29T13:15:49.000 に答える