This is an adaption for Delphi 2009 - Delphi 10.2 Tokyo of the PngComponents created by Martijn Saly (www.thany.org), which makes use of the new built-in PngImage support.
The project is currently hosted on Bitbucket: https://bitbucket.org/uweraabe/pngcomponents
The original Png units from Gustavo Daud are no longer part of the package (mostly because I'm not sure if I may distribute them). So if you want to use it with an earlier version of Delphi, you have to get hands on the original package first. The sources should be compatible downto Delphi 7.
This version includes the DEP fix.
I also added a fix that properly loads DFMs made with older Delphi versions, which contain PNG images in TImage components. For this to work you have to install the package in the IDE and use PngFunctions somewhere in your project. Don't bother if you already use at least one of PngComponents.
Two notes on problems with loading PNG images: 1) The loading is done inside TPngImage which is part of Delphi and not PngComponents. Any problems with Invalid Graphic Format is most likely caused by TPngImage. 2) The current implementation of TPngImage doesn't call Changed when someting changed (f.i during LoadFromResourceName), so there is no notification to the control. As a workaround, load the image into another TPngImage instance and assign that to the PngImage property of TPngSpeedButton. It is not recommended to mess around with the instance behind the PngImage property.
- Fixed a bug that made the IDE crash when leaving. - Reworked the InsertPng method so that it does what the name implies. - Added project files and XE2-support - Added project files for XE3-support - Implemented a hack to make the TActionList editor of XE3 work with TPngImageList - Added project files for XE4-support - Added IFDEF for compilation with Delphi 2007 and below - Fixed display error with images > 255 high - Added project files for XE5 - Added project files for XE6 - added style support for TPngBitBtn (thanks André Püschel) - Added project files for XE7 - Fixed memory leaks - Copy-Paste of a disabled TPngSpeedButton tried to draw the png before it was fully loaded - Fixed uninitialzed local variable Offset in TPngBitBtnStyleHook.DrawButton - Performance optimized version of GrayscaleRGB by Christian Budde - Added project files for XE8 - no focus rectangle drawn on TPngBitBtn - fixed Build-Group for XE8 - added project files for Delphi 10 Seattle - fixed: ConvertToPNG fails for TIcon on Win64 - fixed: SlicePNG didn't copy alpha channel - fixed: eliminated warning - added project files for Delphi 10.1 Berlin - fixed TPngImageList.Assign (was completely broken) - added project files for Delphi 10.2 Tokyo - fixed: handling changed behavior of AddImage since 10.1 Berlin - fixed: TPngSpeedButton failed when PngImage set to nil - added support for overlays - fixed: TPngBitBtn throws exception when having focus while parent form is closed - change: Removed TRGPLine and PRGBLine as they are already declared in PngImage. Moved TRGBALine and PRGBALine local to ConvertToPNG as the only place where they are used. - change: Moved CopyImageFromImageList from PngFunction to PngImageList to avoid cyclic dependency. Adjusted uses clauses in PngBitBtn and PngSpeedButton.