Hallo,
ich benötige Bilder für die Weiterverarbeitung in Spumux Bilder im Format PNG mit maximal 4 Farben. Dafür habe ich mir unter
http://jijigaga.com/qrli/en.htm#tpngimage das Archiv LibPng.zip heruntergeladen. Es beinhaltet zwei Units und eine
DLL. Mein Problem besteht nun darin:
In der LibPng.pas ist die Procedure
Delphi-Quellcode:
procedure png_set_PLTE(png_ptr: PPng_Struct; info_ptr: PPng_Info;
palette: PPng_Color; num_palette: Integer); cdecl; external Lib;
deklariert, welche in der PngImage.pas von der Procedure
Delphi-Quellcode:
procedure TPngImage.SaveToStream(s: TStream);
var
png: PPng_Struct;
pnginfo: PPng_Info;
RowPtrs: PPointer;
BitDepth, colorType: integer;
pal: array[0..255] of PALETTEENTRY;
pngPal: array[0..255] of TPng_Color;
num, i: integer;
begin
...
if ColorType = PNG_COLOR_TYPE_PALETTE then
begin
num := GetPaletteEntries(Palette, 0, 256, pal);
for i := 0 to num-1 do
begin
pngpal[i].red := pal[i].peRed;
pngpal[i].green := pal[i].peGreen;
pngpal[i].blue := pal[i].peBlue;
end;
png_set_PLTE(png, pnginfo, @pngpal, num);
end;
...
verwendet wird.
Delphi 7 Personal bringt mir die Fehlermeldung "Inkompatible Dateitypen: 'Array' und 'TPng_Color'. Eine Änderung in der LibPng.pas bringt nichts und die Änderung von "array[0..255] of TPng_Color" auf "TPng_Color" teilweise falsche Farben.