MATLABを表示なしでバッチモードで実行すると(たとえば、$DISPLAY
UNIX環境変数を設定しないか、起動時にmatlab -nodisplay
フラグを使用)、レンダラーopengl
。代わりにpainters
レンダラーを解決する必要があります。例えば:などのパッチ、照明、透明性、と3Dシーンで作業する場合残念ながら、painters
は、多くの場合、悪い結果を与えるOpenGLレンダラをバッチモードで使用すると、すべてのテキストが失われる
>> print -dpng -opengl fig.png
Warning: OpenGL mode can not be used in terminal emulation mode; ignoring option.
...ここでアルファが失われた(今のディスプレイを使用して)1つの簡単な例を示します。これらの制限の
peaks
alpha(0.5)
print -dpng -opengl peaks_opengl.png
print -dpng -painters peaks_painters.png
、私は主に、文書化されていないを見つけることは非常に興奮していました組み込みMATLAB関数はと表示されずにopengl
レンダラを使用することができます。この機能は、export_fig()
という素晴らしい機能の基礎となります。今、バッチモードで高品質の3D数値を非常に迅速に保存できます。
ただし、1つのキャッチがあります。数字がhardcopy()
の機能を通過するとすべてのテキストが失われます。
plot(1,1)
title('TEST')
>> A = hardcopy(gcf, '-Dopengl', '-r300');
Warning: Failed to draw text string
> In /Applications/MATLAB_R2010b.app/toolbox/matlab/graphics/hardcopy.p>hardcopy at 21
出力図形が完全に任意のテキスト(ない軸ラベルやタイトルなしダニいない)不足している:
export_fig axis.png -opengl
をだから私は思ったんだけど何たとえば :opengl
レンダラをバッチモードでテキストを操作するにはどうすればよいですか?hardcopy()
機能で動作するテキストを取得する方法はありますか?おそらく事前にテキストをラスタライズする方法でしょうか?または、テキストのハードコピーとプロットのopengl
のコピーを組み合わせる方法はありますか?また、hardcopy()
機能とは全く別のルートがありますか?また、Mac OSとUbuntuの両方で再現可能であるため、私のシステム設定では問題は起こりそうもないことに注意してください。
この[Mathworks post](http://www.mathworks.com/matlabcentral/newsreader/view_thread/300393)のテキストフォントが不足していますか? –
@JuanMellado検索していただきありがとうございます。私は前にそのスレッドに出くわしましたが、フォントがここで問題ではないと私は信じています。私は 'listfonts'で自分のフォントを使うことができ、インタラクティブモードとバッチモードの両方でペインタで、インタラクティブモードではopenglでうまくエクスポートできます。私は確信することはできませんが、他のスレッドは2つの別々の問題を混乱させる可能性があります。 –