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

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

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

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


person user20493    schedule 07.07.2010    source источник


Ответы (2)


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

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

person Jerry Coffin    schedule 07.07.2010

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

person Mark Ransom    schedule 07.07.2010