Du musst halt zunächst mal einen
Farbreduzierungsalgorithmus implementieren. Bekannte Verfahren sind Octree und Median-Schnitt. Das Median-Schnitt-Verfahren ist selbst dann verlustbehaftet, wenn das Ausgangsbild bereits weniger Farben als angegeben hat. Diese Verfahren werden zudem oft mit einem
Dithering-Algorithmus (auch Fehlerdiffusion genannt) kombiniert, am bekanntesten sind Floyd-Steinberg und Stucki. Dithering erhöht die Dateigröße stark.
Ja aber genau hier liegt ja der Hund begraben. Ich habe keine Ahnung wie man das macht. Bei meinem 3. Link zum C# Algorythmus wäre ja was dabei, aber ich verstehe da nur Bahnhof und weiss überhaupt nicht wie ich das nun in Delphi umgesetzt bekomme.
http://www.hurryupandwait.io/blog/co...it-pngs-with-c
Hast du (oder irgendwer der sich hier Beteiligten) denn überhaupt den GESAMTEN Blogpost gelesen?
Lade dir doch einfach die Visual Studio Community runter, hole dir den nQuant Quelltext, kompiliere und builde das Kommandozeilentool und rufe es in deinen Programm (oder sonst wie) auf.
https://code.msdn.microsoft.com/Conv...bit%20PNGs.zip
Wenn ganz viel Zeit da ist, kannst du die 632 Zeilen der WuQuantizer.cs (also da wo die ganze Magie passiert) auch nach Delphi übersetzen.
Delphi bringt auch eine
GDI+ Kapselung mit. Damit kannst du die verwendeten Objekte von System.Drawing und System.Drawing.Imaging substituieren.