Einzelnen Beitrag anzeigen

CarlAshnikov

Registriert seit: 18. Feb 2011
Ort: Erfurt
108 Beiträge
 
Delphi XE5 Enterprise
 
#1

PNG 16 Bit Grayscale erzeugen

  Alt 28. Nov 2011, 13:45
Hallo,

für ein aktuelles Projekt soll ich das Bild einer Kamera, dass ich in 12bit Helligkeitswerten abrufe, als 16bit PNG abspeichern.

Versucht habe ich das Ganze mit PNGImage. Beim Speichern der Datei bekomme ich allerdings eine Exception. Folgendes klappt schon nicht:
Code:
  PNG := tPNGobject.CreateBlank(COLOR_GRAYSCALE, 16, 1024, 512);
  try
    for Y := 0 to 511 do
    begin
      for X := 0 to 1023 do
      begin
        PNG.Pixels[X, Y] := 1;
      end;
    end;
    PNG.SaveToFile('test.png');
  finally
    PNG.free;
  end;
Ändere ich die BitDepth im Constructor von 16 in 8 läuft alles wie gewünscht.
CodeZeilen wie:
Code:
if Bitdepth = 16 then Bitdepth := 8;
machen mir irgendwie auch wenig Hoffnung, dass die 16 Bit Grauwertgeschichte hiermit klappt.

Vielleicht kennt jemand eine Lösung des Problems oder eine passende Alternative.
Sebastian
  Mit Zitat antworten Zitat