Альтернативы сглаживания - PullRequest
2 голосов
/ 07 мая 2009

Я видел сглаживание в Windows, используя GDI +, Java, а также предоставленное Photoshop и Gimp. Существуют ли какие-либо другие библиотеки, которые предоставляют средства сглаживания, не зависящие от поддержки со стороны хост-ОС?

Ответы [ 3 ]

4 голосов
/ 07 мая 2009

Antigrain Geometry обеспечивает сглаженную графику в программном обеспечении.

3 голосов
/ 07 мая 2009

Как указывал Саймон, термин сглаживание используется регулярно / злоупотребляет довольно часто, поэтому всегда полезно точно знать, что вы пытаетесь сделать.

Поскольку вы упоминаете GDI, я предполагаю, что вы говорите о поддержании хороших четких краев при изменении их размера - поэтому что-то вроде символа в шрифте выглядит чистым и не пикселированным, когда вы изменяете его в 2 или 3 раза по сравнению с его оригинальным размером. Для такого рода вещей в прошлом я использовал технику, называемую увеличением в альфа-тестировании - вы можете прочитать документ здесь:

http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf

Когда я реализовал это, я использовал более одной плоскости, чтобы я мог получить лучшие края на всех типах объектов, но это кратко освещает это к концу. Из всех подходов (которые я использовал) для поддержания качества при масштабировании векторных изображений это было самое простое и высшее качество. Это также имеет то преимущество, что его легко реализовать на аппаратном уровне. С точки зрения API, лучше всего использовать OpenGL или Direct3D - при этом для достижения цели требуется только билинейная фильтрация и отображение текстуры, так что вы можете свернуть свою собственную (я это делал в прошлом). Если вы всегда имеете дело с прямоугольниками и вам нужно только масштабировать, это довольно тривиально, и добавление поворота не добавляет такой сложности. Если вы делаете свой собственный, убедитесь, что уделяете особое внимание позиционированию субпикселей (как вы разрешаете позиции пикселей, которые не попадают на полный пиксель, так как это критично для качества, а иногда и упускается из виду.

Надеюсь, это поможет!

0 голосов
/ 07 мая 2009

Существует (часто ошибочно названное, кстати, но это мертвая лошадь) множество подходов сглаживания, которые можно использовать. В зависимости от того, что вы знаете об исходном сигнале и каково его предназначение, разные вещи, скорее всего, дадут вам желаемый результат.

«Поддержка со стороны хост-системы», вероятно, наиболее целесообразна, если вывод осуществляется через средства отображения ОС, так как они имеют наибольшую информацию о том, что делается с образом.

Полагаю, это долгий способ спросить, что ты на самом деле пытаешься сделать? Многие графические библиотеки предоставляют сглаживание в той или иной форме, независимо от того, будут ли они подходящими, во многом зависит от того, чего вы пытаетесь достичь.

...