Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Inkompatible Datentypen: Array und TPng_Color (https://www.delphipraxis.net/51453-inkompatible-datentypen-array-und-tpng_color.html)

Garfield 12. Aug 2005 15:06


Inkompatible Datentypen: Array und TPng_Color
 
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.

Bernhard Geyer 12. Aug 2005 15:23

Re: Inkompatible Datentypen: Array und TPng_Color
 
Nimm lieber TPNGImage. Da benötigst Du keine DLL's

Garfield 12. Aug 2005 16:25

Re: Inkompatible Datentypen: Array und TPng_Color
 
Danke für den Tipp. Hat sehr gut geklappt. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz