Gif-Komponente
-
Hi
Ich arbeite an einem Programm für welches ich zwingend eine Komponente zum speichern von Gif-Dateien brauche.
Momentan arbeite ich mit A. Melanders TGIFImage, habe aber massive Probleme damit.
So werden alle Farben auf die Netscape Farbtabelle mit 216 Farben runtergerechnet. Ich brauche aber die volle RGB-Tabelle.
Außerdem schmeißt mir die Komponente manchmal lustige Exceptions die absolut keinen Zusammenhang haben.
Die Exceptions sind noch nichtmal so schlimm. Was aber wirklich stört ist, dass ich keine 3 Byte-Farben abspeichern kann. Vielleicht bediene ich die Komponente ja auch nur falsch
Habe schon so ziemlich alle Datenbanken für Komponenten durchforstet aber keine wirklich gute Alternative gefunden.Könnte mir jemand der Erfahrung mit der Verwendung von Gif-Dateien hat eine Alternative nennen oder mir sagen wie ich die RGB-Funktionalität in TGIFImage aktiviere?
Gruß
rean
-
Für den Umgang mit Grafiken ist die GDI+ recht gut. Zwar keine Komponente, aber doch recht umgänglich.
-
Soviel ich weiß, werden GIF-Bilder immer mit einer Farb-Palette abgespeichert und das Bild besteht dann aus den entsprechenden Indizes.
Schau mal bei der Komponente nach, ob du die Farbpaletten-Einträge verändern kannst.
-
Hallo
die maximal möglich 256 Farben in der Farbtabelle sind eine Formatkonvetion von GIF. Wenn du mehr brauchst bzw. direkte Bitmaps von 3-Byte Werten, must du ein anderes Format nehmen.
bis bald
akari
-
An GDI+ hatte ich auch schon gedacht. Bekomme das aber leider nicht zum laufen weil es eine "Mehrdeutigkeit zwischen Grapics(void*) und Graphics(void*, int)" gibt

http://de.wikipedia.org/wiki/Gif
Bei GIF sind die Farbinformationen in einer Farbtabelle abgelegt. Diese kann bis zu 256 verschiedene Einträge enthalten, die frei aus 16,7 Millionen möglichen Farbwerten auswählbar sind.Dass ich maximal 256 verschiedene Farben in der Farbtabelle einer Gif-Datei abspeichern kann ist mir schon klar, trotzdem müsste ich diese 256 Farben frei wählen können...
-
rean schrieb:
An GDI+ hatte ich auch schon gedacht. Bekomme das aber leider nicht zum laufen weil es eine "Mehrdeutigkeit zwischen Grapics(void*) und Graphics(void*, int)" gibt

Da ist es hilfreich, das Symbol STRICT über eine Compileroption zu definieren.