2016-04-01 12 views
1

作成しようとしているJavaFXグラフィックスプログラムでは、各ピクセルを4つのサブピクセルに分割して描画したいと考えています。これはJavaFX(または他のJavaグラフィックスライブラリ)でも可能ですか?JavaFXでサブピクセルを描画しますか?

+3

ピクセルではありません、定義上、原子ですか? – Carcigenicate

+0

@Carcigenicate、投稿に時間を割いてくれてありがとう。私は、OpenGLとPythonでサブピクセル操作を行うことは可能だと読んだが、JavaFXについてはわからない。 – user5508297

+0

イメージを係数2でスケールしたいですか? – fabian

答えて

0

FontSmoothingType.LCDを使用すると、JavaFXはテキストのサブピクセルをレンダリングします。

私が知る限り、JavaFXでは、テキスト以外のグラフィックスプリミティブ(たとえば、線や円)に対してsub pixel renderingを指定することはできません。

他のプリミティブのレンダリングタイプを指定することはできませんが、サブピクセルレンダリングを使用してレンダリングされる場合とされない場合があります(私は分かりませんが、サブピクセルレンダリングはプリミティブはanti-aliasingを使用してレンダリングされます。

+0

あなたの答えに感謝します。私は、サブピクセルを操作することなく、私がやりたいことをやり遂げる別の方法を見つけようとします。 – user5508297

0

はい、できます。デフォルトでは、キャンバス上の整数ピクセルに描画する場合、実際のスクリーンピクセルの間にドットを描画します。つまり、隣接するピクセルとアンチエイリアスします。 0.5だけオフセットすると、ピクセル上に正確に描画されます。したがって、0.5〜1.5の値を使用してサブピクセルを描画できます。たとえば、Y1 = 100.5とY2 = 101.5の横線を描くと、間にアンチエイリアスが表示されます。また、線幅を非整数に設定することもできます。その場合は、ピクセルを適切な量だけ薄暗くするかアンチエイリアスします。 FontSmoothingについてはわかりませんが、これはキャンバスGraphicsContextの一部です。

+0

私は、サブピクセルレンダリングが実際に意味するものを再読み込みしました。私は、線を描くときにJavaFXのためにそれを見つけていません。私はたぶん、通常のアンチエイリアスに遭遇しました。 – Sonicsmooth

関連する問題