2

Ich habe Antialiasing unter Windows mit GDI +, Java und auch die von Photoshop und Gimp zur Verfügung gestellt. Gibt es andere Bibliotheken, die eine Antialiasing-Funktion bieten, ohne auf die Unterstützung durch das Host-Betriebssystem angewiesen zu sein?Antialiasing Alternativen

+1

Sie müssen wirklich konkreter sein mit dem, was Sie mit den Bildern machen wollen, die Anti-Aliasing benötigen ... –

+0

Ich benutze GDI-Aufrufe, um eine Zeichnung zu generieren.Ich versuche, den Treppeneffekt zu reduzieren Beim Zeichnen von Text und schrägen Linien hilft die SmoothingMode-Eigenschaft, aber ich würde gerne sehen, ob andere Bibliotheken eine bessere Glättung/Leistung bieten. –

Antwort

4

Antigrain Geometry bietet Anti-Aliasing-Grafiken in der Software.

+0

AGG ist wirklich schön! –

0

Es gibt (oft falsch benannt, übrigens, aber das ist ein totes Pferd) viele Anti-Aliasing-Ansätze, die verwendet werden können. Je nachdem, was Sie über das ursprüngliche Signal wissen und was der beabsichtigte Zweck ist, werden Sie wahrscheinlich mit verschiedenen Dingen das gewünschte Ergebnis erzielen.

"Die Unterstützung vom Host-Betriebssystem" ist wahrscheinlich am sinnvollsten, wenn die Ausgabe über die OS-Anzeigeeinrichtungen erfolgt, da sie die meisten Informationen darüber haben, was mit dem Image gemacht wird.

Ich nehme an, es ist ein langer Weg zu fragen, was Sie eigentlich versuchen zu tun? Viele Grafikbibliotheken bieten eine Art von Antialiasing, ob sie angemessen sind oder nicht hängt sehr viel von dem ab, was Sie erreichen möchten.

3

Wie simon darauf hingewiesen hat, wird der Begriff Anti-Aliasing ziemlich häufig missbraucht/missbraucht, so dass es immer hilfreich ist, genau zu wissen, was Sie versuchen zu tun.

Da Sie GDI erwähnen, gehe ich davon aus, dass Sie scharfe Kanten bei der Größenanpassung beibehalten - so etwas wie ein Zeichen in einer Schriftart sieht sauber und nicht verpixelt aus, wenn Sie die Größe 2x oder 3x ändern . Für diese Art von Dingen habe ich eine Technik, die in der Vergangenheit alpha-getestet Vergrößerung genannt verwendet - können Sie das White Paper hier lesen:

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

Als ich es implementiert habe ich mehr als eine Ebene verwendet, so kann ich bekommen bessere Kanten bei allen Arten von Objekten, aber das deckt sie kurz gegen Ende ab. Von allen Ansätzen (die ich verwendet habe), um die Qualität beim Skalieren von Vektorbildern beizubehalten, war dies die einfachste und höchste Qualität. Dies hat auch den Vorteil, dass es leicht in Hardware implementiert werden kann. Von einem bestehenden API-Standpunkt aus ist es am besten, entweder OpenGL oder Direct3D zu verwenden - das heißt, dass es nur bilinear gefiltert und texture mapped benötigt, um das zu erreichen, was du tust, also kannst du dein eigenes rollen lassen (ich hatte in der Vergangenheit). Wenn Sie sich immer mit Rechtecken beschäftigen und nur skalieren müssen, ist das ziemlich trivial, und das Hinzufügen von Rotation fügt nicht so viel Komplexität hinzu. Wenn Sie Ihre eigenen rollen, achten Sie besonders auf die Subpixel-Positionierung (wie Sie Pixelpositionen auflösen, die nicht auf ein vollständiges Pixel fallen, da dies für die Qualität kritisch ist und manchmal übersehen wird.)

Hoffe, dass hilft!

+0

+1 weil es mir eine Idee gegeben hat, die meine eigene Frage beantworten könnte p: //stackoverflow.com/questions/1957901/antialiased-composition-by-coverage besser –