Henrik Erlandsson
Henrik Erlandsson

Reputation: 3830

Delphi 7, load PNG to TImage

Just want to load a .PNG, tried with my LoadPic() using OleGraphic that works with other formats, but it failed on PNG.

The goal is to copy the image to a hidden bitmap whence it is then masked and copied to a visible working image canvas. Feel free to suggest something else if CopyRect doesn't do this.

But the main question: Load PNG. How? I've found a lot of pages (f.ex. TPNGImage), but all the resources and links on the web are dead, gone or not downloadable.

Upvotes: 5

Views: 33349

Answers (6)

Stacey Richards
Stacey Richards

Reputation: 6596

GraphicEx by Soft Gems has been moved to https://github.com/mike-lischke/GraphicEx

An explaination regarding the move can be found at http://www.soft-gems.net/index.php/libs/43-graphicex-on-github

I added GraphicEx to my Delphi 6 project and it worked out of the box but when I tested it with Delphi 5 it did not.

Regardless, it works well and implements not only PNG images but also many others which are configurable from GraphicConfiguration.inc:

// Pick your preferred image formats here or leave them all enabled. By disabling
// certain formats which are not of interest you can save some memory.
{$define UseLZW}  //patent is out, yay!
{$define SGIGraphic}             // *.bw, *.rgb, *.rgba, *.sgi images are supported
{$define AutodeskGraphic}        // *.cel, *.pic images
{-$define NewTIFFGraphic}            // *.tif, *.tiff images
{$define OldTIFFGraphic}
{$define TargaGraphic}           // *.tga, *.vst, *.icb, *.vda, *.win images
{$define PCXGraphic}             // *.pcx, *.pcc, *.scr images
{$define PCDGraphic}             // *.pcd images
{$define PortableMapGraphic}     // *.ppm, *.pgm, *.pbm images
{$define CUTGraphic}             // *.cut (+ *.pal) images
{$define GIFGraphic}             // *.gif images
{$define RLAGraphic}             // *.rla, *.rpf images
{$define PhotoshopGraphic}       // *.psd, *.pdd images
{$define PaintshopProGraphic}    // *.psp images
{$define PortableNetworkGraphic} // *.png images
{$define EPSGraphic}             // *.eps images
{$define ArtsAndLettersGraphic}  // *.ged images

Upvotes: 0

Henrik Erlandsson
Henrik Erlandsson

Reputation: 3830

I will use GraphicEx from Soft Gems for now. Thanks for helpful answers!

Upvotes: 6

azrael11
azrael11

Reputation: 415

Download from below...

http://delphi.pjh2.de/articles/graphic/png.php

It is very easy to handle .png images with delphi 7... Just add it into uses... and create a png object...

Upvotes: 3

Arnaud Bouchez
Arnaud Bouchez

Reputation: 43053

The small Open Source SynGdiPlus library is able to load and save gif, tiff and png pictures.

It will call the GdiPlus.dll library, which is available since Windows XP.

It's fast and reliable.

The same unit is able to render any GDI metafile with anti-aliasing: you write on a regular TCanvas, then it's drawn with anti-aliasing using GDI+. Small code change, greater rendering.

Open Source unit, working from Delphi 6 up to XE.

You can download the latest version from http://synopse.info/fossil/finfo?name=SynGdiPlus.pas

Upvotes: 0

David Heffernan
David Heffernan

Reputation: 613572

Recent versions of Delphi support PNG natively, amongst many other enhancements, and you would be well advised to upgrade.

Upvotes: 6

Bruce McGee
Bruce McGee

Reputation: 15334

Delphi 7 doesn't support PNG natively. There are several third party components that will let you add that support. For example, on Torry's site.

Upvotes: 11

Related Questions