对于我正在尝试创建的JavaFX图形程序,我希望能够将每个像素划分为4个子像素并绘制它们。这在JavaFX(或任何其他Java图形库)中可能吗?
JavaFX将在使用FontSmoothingType.LCD
时渲染文本的子像素。
据我所知,JavaFX中没有任何机制可以指定对文本以外的任何其他图形基元(如线和圆)使用亚像素渲染。
即使不能指定其他基本体的渲染类型,也可以使用子像素渲染来渲染它们(我不知道,但我猜即使使用抗锯齿渲染基本体,也不会使用子像素绘制)。
可以。默认情况下,如果您在画布上绘制一个整数像素,它将在实际屏幕像素之间绘制一个点,即它将与相邻像素反别名。如果偏移0.5,则它将精确地绘制在像素上。因此,可以使用0.5到1.5之间的值绘制子像素。例如,如果绘制Y1=100.5和Y2=101.5的水平线,则会看到它们之间的抗锯齿。您也可以将线宽设置为非整数,在这种情况下,它将使像素变暗或抗锯齿适当的量。我不确定FontSmoothing,但这是画布GraphicsContext的一部分。