![]() |
GraphicEx und P(E)NG!
Hi,
nachdem ich eine png-Graphic mit GraphicEx geöffnet habe, zeigt mir FastMM4 einen "schönen" Fehler an: "Der Block-Footer (Line) ist fehlerhaft." Ich habe das mit verschiedenen Programmen überprüft, nicht nur den eigenen. Immer dasselbe. Weiß jemand, was da zu tun ist? Gruß Mattze |
Re: GraphicEx und P(E)NG!
Die Methode hat da ein Memoryleak. Wenn man was googelt, findet man die Lösung:
Füge in der Methode TPNGGraphic.LoadFromStream(Stream: TStream); ungefähr in Zeile 6985 ein FreeMem(FRawBuffer); ein - unmittelbar vor FRawBuffer := nil;
Delphi-Quellcode:
// ...
FPalette := 0; FTransparency := nil; FBackgroundColor := clWhite; FTransparentColor := clNone; // first chunk must be an IHDR chunk FCurrentCRC := LoadAndSwapHeader; !!!! FreeMem(FRawBuffer); FRawBuffer := nil; ColorManager.SourceOptions := [coNeedByteSwap]; try // read IHDR chunk ReadDataAndCheckCRC; Move(FRawBuffer^, Description, SizeOf(Description)); // ... |
Re: GraphicEx und P(E)NG!
Vielen Dank für die schnelle Antwort.
Ich habe das eingebaut, kriege aber weiterhin den gleichen Fehler. Da sage ich jetzt aber nichts, weil ich erst noch ein bisschen probieren muss! Momentan habe ich als "Zwischenlösung" erst mal alles auf pngimage umgebaut. Geht auch sehr gut. Gruß Mattze |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz