Einzelnen Beitrag anzeigen

Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.334 Beiträge
 
Delphi XE5 Professional
 
#1

Inkompatible Datentypen: Array und TPng_Color

  Alt 12. Aug 2005, 15:06
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.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat