Fehlermeldungen hier auch hinzuschreiben ist total out mittlerweile, oder?
Falls es etwas hilft, aus der PNGImage.pas:
Code:
{Saves the PLTE chunk to a stream}
function TChunkPLTE.SaveToStream(Stream: TStream): Boolean;
var
J: Integer;
DataPtr: pByte;
BitmapInfo: TMAXBITMAPINFO;
palEntries: TMaxLogPalette;
begin
{Adjust size to hold all the palette items}
if fCount = 0 then fCount := Header.BitmapInfo.bmiHeader.biClrUsed;
ResizeData(fCount * 3);
{Get all the palette entries}
fillchar(palEntries, sizeof(palEntries), #0);
GetPaletteEntries(Header.ImagePalette, 0, 256, palEntries.palPalEntry[0]);
{Copy pointer to data}
DataPtr := fData;
{Copy palette items}
BitmapInfo := Header.BitmapInfo;
FOR j := 0 TO fCount - 1 DO
with palEntries.palPalEntry[j] do
begin
DataPtr^ := Owner.InverseGamma[peRed]; inc(DataPtr); <----
Exception
DataPtr^ := Owner.InverseGamma[peGreen]; inc(DataPtr);
DataPtr^ := Owner.InverseGamma[peBlue]; inc(DataPtr);
end {with BitmapInfo};
{Let ancestor do the rest of the work}
Result := inherited SaveToStream(Stream);
end;
Folgender Fehler tritt auf:
Zugriffsverletzung bei Adresse 00450768 in Modul 'Project1.exe'. Lesen von Adresse 00134000. Prozess angehalten. ...
Ich gehe davon aus, dass an mancher Stelle mit 16 Bit und an anderer Stelle mit 8 Bit gearbeitet wird und dann auf Speicherbereiche zugegriffen wird wo einfach nichts ist.
Zitat:
Hab so die Erfahrung das diese mit 16-Bit Farbtiefe so ihre Probleme hat (Falschfarben) ...
Ist mir eigentlich egal da ich nur Grauwerte brauche
. Oder betrifft die das auch?
Wie gesagt, ich muss das Problem nicht mit dieser Komponente lösen habe aber beim Suchen noch kein andere gefunden.