Forum: Mikrocontroller und Digitale Elektronik Free Graphics library für Anti-Aliasing


von Maxi (Gast)


Lesenswert?

Hallo,

ich soll ein LCD-Display mit Anti-Aliasing (z.B. durch 
Subpixel-Rendering) und anderen Schatteneffekten programmieren.
Gibt es hierzu vllt bereits freien oder erschwinglichen Code für die 
Umsetzung? Ich bin bei der Recherche nur auf kommerzielle Produkte 
(1000€+) gestoßen, die aber das Projektbudget sprengen würden.
Wird so etwas evt auch von graphic Controllern direkt übernommen? Das 
Display habe ich noch nicht rausgesucht.

Danke

Die Maxi

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Für Textausgaben gibt es FreeType, das kann skalierbare Schriften im 
TrueType- und PostScript-Format verdauen.

von Maxi (Gast)


Lesenswert?

Hallo,

danke, aber es dreht sich hautpsächlich um allgemeine Symbole sowie 
geometrische Formen

von Karl H. (kbuchegg)


Lesenswert?

Hast du bereits eine Graphik Library?

Wenn ja: Was spricht dagegen, da Subpixel Rendering einzubauen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Notfalls renderst Du in eine doppelt so große (in jeder Achse) Bitmap 
und berechnest den Mittelwert von je vier Pixeln, den Du dann auf Dein 
Display ausgibst.

Damit erhältst Du Antialiasing, wenn auch kein Subpixel-Rendering.

von Maxi (Gast)


Lesenswert?

Hallo,

zunächst: Nein, ich habe noch keine Graphic Library.
Seither habe ich immer binäre Bitmaps erstellen lassen und dann je 
nachdem ob das derzeitige bit 0 oder 1 war das zugehörige Pixel in der 
entsprechenden Farbe (mit hilfe eines Farbregisters) rausgeschrieben.
Was ich nun bräuchte wäre ja nun entweder eine nicht binäre methode oder 
ich schreib das Bitmap doppelt, leicht versetzt hintereinander pixel für 
pixel raus.

Ich habe noch nicht viel Erfahrung mit LCDs (falls man das aus dem 
Beitrag nicht rauslesen konnte

von Karl H. (kbuchegg)


Lesenswert?

Maxi schrieb:
> Hallo,
>
> zunächst: Nein, ich habe noch keine Graphic Library.
> Seither habe ich immer binäre Bitmaps erstellen lassen und dann je
> nachdem ob das derzeitige bit 0 oder 1 war das zugehörige Pixel in der
> entsprechenden Farbe (mit hilfe eines Farbregisters) rausgeschrieben.
> Was ich nun bräuchte wäre ja nun entweder eine nicht binäre methode oder
> ich schreib das Bitmap doppelt, leicht versetzt hintereinander pixel für
> pixel raus.

Das bringt dir nich viel.
Die Methode die Rufus vorschlägt, ist softwaremässig die einfachste 
Variante. Nachteil ist natürlich, dass man 4 mal soviel Speicher 
benötigt.

> Ich habe noch nicht viel Erfahrung mit LCDs (falls man das aus dem
> Beitrag nicht rauslesen konnte

Das hat eher wenig mit LCD an sich zu tun.
Auch mit einfachen Malprogrammen kann man diese Technik benutzen: Ist 
die Größe der Zielbitmap 300*300 Pixel, dann malt man das Bild zunächst 
mit der doppelten Größe, also 600*600 Pixel (oder noch höheren 
Vielfachen) und lässt erst ganz zum Schluss, wenn das Bild fertig ist, 
das Malprogramm von dieser höheren Auflösung auf die Zielauflösung 
runterrechnen (zb durch MIttelwertbildung von jeweils 2*2 Pixel). Man 
erhält dann automatisch ein Anti-Aliasing (und kleiner unvermeidliche 
Fehler beim malen verschwinden auch ganz automatisch).

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.