Можно ли нарисовать сглаженный текст на растровом изображении 8bpp в Win32?

Я выбрал растровое изображение 8bpp в CDC и использовал::TextOut () для рисования текста. Качество шрифта ANTIALIASED_QUALITY, но текст получается монохромным; нет серых пикселей и неровных краев.

Растровое изображение 8bpp было извлечено из растрового изображения 24bpp, на котором уже нарисован сглаженный текст, и этот текст в порядке. (Оба типа текста находятся в одном растровом изображении.)

Конечно, я мог бы рисовать на 24bpp и конвертировать, но это более сложно и медленно. (Более поздний текст изменяется и повторяется много раз.) Можно ли получить сглаженный текст непосредственно в растровое изображение 8bpp? Спасибо!

2 ответа

Решение

Нет, сглаживание не работает с 8 bpp. Если вам нужны более быстрые обновления, подумайте о том, чтобы рисовать с помощью чего-то вроде OpenGL, а не через GDI. В OpenGL рисование обычно выполняется исключительно графическим оборудованием, поэтому даже при 32 битах на дюйм рисование обычно будет быстрее, чем в GDI с 8 битами на дюйм.

Стоит также отметить, что в любом случае вам, вероятно, будет лучше с 32-бпп, чем с 8- или 24-бп. GDI может использовать (некоторое) аппаратное ускорение, но обычно оно лучше в 32-битном режиме.

Нет, GDI не делает сглаженный вывод для растрового изображения с палитрой, и это именно то, что представляет собой растровое изображение в градациях серого.

Другие вопросы по тегам