Для графической программы JavaFX, которую я пытаюсь создать, я хотел бы разделить каждый пиксель на 4 подпикселя и нарисовать их. Возможно ли это в JavaFX (или в любой другой графической библиотеке Java)?Рисование субпикселей в JavaFX?
ответ
JavaFX будет отображать вспомогательные пиксели для текста, если используется FontSmoothingType.LCD
.
Насколько я знаю, в JavaFX нет механизма, где вы можете указать sub pixel rendering для любых других графических примитивов, кроме текста (например, линий и кругов).
Даже если вы не можете указать тип рендеринга для других примитивов, они могут отображаться или не отображаться с помощью подпиксельного рендеринга (я не знаю, хотя я бы предположил, что подпиксельная рендеринг не будет использоваться даже тогда, когда примитивы отображаются с использованием anti-aliasing).
спасибо за ваш ответ. Я попытаюсь найти другой способ сделать то, что я хочу сделать, не манипулируя субпикселями. – user5508297
Да, вы можете. По умолчанию, если вы нарисуете целочисленный пиксель на холсте, он нарисует точку «между» фактическими пикселями экрана, т. Е. Будет сглаживаться с соседними пикселями. Если вы компенсируете 0,5, то он будет точно рисовать на пикселе. Таким образом, вы можете рисовать субпиксели, используя значения от 0,5 до 1,5. Например, если вы рисуете горизонтальную линию с Y1 = 100,5 и Y2 = 101,5, вы увидите сглаживание между ними. Вы также можете установить ширину линии не целой, и в этом случае она будет тусклой или сглаживать пиксель соответствующей суммы. Я не уверен в FontSmoothing, но это часть холста GraphicsContext.
Мех, хорошо перечитывать, что означает рендеринг субпикселя, я не сталкивался с этим для JavaFX при рисовании строк. Я только сталкивался с предположительно регулярным сглаживанием. – Sonicsmooth
Не пиксели, по определению, атомарные? – Carcigenicate
@Carcigenicate, спасибо, что нашли время для публикации. Я читал, что можно делать подпиксельные манипуляции в OpenGL и Python, но я не уверен в JavaFX. – user5508297
Вы хотите увеличить изображение в 2 раза? – fabian