Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.081 Beiträge
 
Delphi 2009 Professional
 
#11

AW: PNG komprimieren

  Alt 23. Okt 2018, 18:25
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.

Und jede (Alpha-)Transparenz des PNGs geht verloren.
Korrigiere mich, aber soweit ich weiß haben unterhalb 32bit nur "Grayscale" Bilder einen Alphachannel?
Das ist falsch. Unterstützt bloß kaum ein Programm. Beispiel ist angehängt.

Bei der Masse an Code die Du zeigst um zu sehen wie ein Bild in Dein Programm gelangt, so könnte es funktionieren MeinBild.PixelFormat := pf8Bit; Teste das mal vorm speichern.
Das wird nicht gehen, da erst komplexe Algorithmen angewandt werden müssen (siehe oben).
Miniaturansicht angehängter Grafiken
indexedalpha.png  
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat