Zitat von
OldGrumpy:
Leider gibts da aber nix zum Manipulieren bzw. Konvertieren zwischen verschiedenen Farbtiefen...
Hi,
mal ungetestete zwei Tipps/Möglichkeiten. Die Information wieviele Bit pro Pixel verwendet werden und wie welcher Farbtyp verwendet wird, kannst du durchaus auslesen (und sogar verändern).
Da findest du die Eigenschaft TPngObect.Header.Bitdepth bzw. TPngObect.Header.Colortype. Das setzen dürfte allerdings wenig bringen (da hier kein Setter verwendet wird, dürfte das Setzen eher zu Problemen führen). Kannst es aber ja mal damit versuchen.
Ansonsten kannst du hier auf jeden Fall schon mal die PNGs filtern, die keine 24 Bit Farbtiefe (8 Bit / Pixel +
RGB). Diese kannst du dann einem Bitmap zuweisen, das Pixelformat der Bitmap auf 24 Bit setzen und aus dieser Bitmap ein neues TPngObject erzeugen. Ist nicht wirklich elegant, aber sollte funktionieren.
Gruß Der Unwissende