I am using Delphi 7 and the OpenPictureDialog to open / preview various images. This works fine when opening a bmp, jpg, etc.; however, if I try to do the same with a gif I get the following error. Anyone got any idea why or have a fix for it?
thanks
Colin
Use this TGIFImage. This is the original unit which was donated to CodeGear in 2006. It supports Delphi7.
copy GifImage.pas to your project path (from gifimaged2010b.zip) ,
and add to your uses list ;
thats all
It will automatically add GIF in filters for openpicturedialog (**)
Just use the GraphicEx library by Mike Lischke. Just add a couple files to your uses list and your application natively supports GIF, TIFF, PNG and many many others. The standard TImage will work with them and also the TPictureDialog (along with all others standard components that use TGraphic - take note that some features will only work at runtime).
If you use our free syngdiplus unit, you'll get GIF, JPEG and TIFF image support at once, by using the gdiplus library, available on every Windows since Windows XP. It supports loading and saving pictures, and the preview in TPictureDialog. And your exe size with increase much less than with GraphicEx or TGifImage.
Works from Delphi 6 up to Delphi XE.
And you'll be able to draw any TCanvas with anti-aliaising.
See http://synopse.info/forum/viewforum.php?id=4
Delphi 7 simply doesn't support GIF images. This has led to a number of third-party components for reading GIF files. However, as of Delphi 2006 (IIRC), the RTL/VCL can read GIF files as well. Just include GifImg in the uses clause. (In fact, as of Delphi 2009, the RTL/VCL can also read PNG files. And then there is really no need for GIF support, because the PNG file format is superior in almost every way. The only thing supported by GIF that is not supported by PNG is (low-quality(1)) animations.)
(1) GIF only supports 256 colours.
Related
I see from this discussion, and the Nick Hodges blog, that the TPngImage has been rolled into Delphi. That's great and all, but we've got a project that's stuck in D2005 and we need to do a simple conversion from PNG to BMP. Is there anywhere that we can get the legitimate source for this? I do not want to run afoul of Embarcadero's licensing, but I DO want to pave the way for a smooth transition to DelphiXE2 (or 3, or 9, who knows when we'll actually convert?). Suggestions? Thanks.
The original version of the TPNGImage from Gustavo Daud is available in the torry's site http://www.torry.net/authorsmore.php?id=6929
You may also consider using the GR32 PNG library. https://sourceforge.net/projects/gr32pnglibrary/
It is a PNG library for reading and writing of PNG images in combination with a TBitmap32 class from the GR32 library.
I'm trying to load a jpg file which is 604KB big into a TImage component on a vanilla TForm but the load causes it to fail with an access violation:
Access violation at address 402372AD in module vcljpg60.bpl. Write of address 0904000
I just tried it in Delphi 7 and the same is true except the vcl is 70 instead of 60 and the address is slightly different
Does anyone know of a bug in Delphi around jpg files?
Many thanks for any input on this
cheers
Colin
maybe you problem is due to the colorspace of your JPEG file. Delphi has issues displaying JPEG images that have been encoded using CMYK instead of RGBencoding.
Check this Enhanced JPEG implementation which fix the problem with the CMYK colorspace. also you can check this similar question Problem with showing some JPG files in Delphi.
Recently I've found TPngImageList component ( http://cc.embarcadero.com/Item/26127 ) which is very good, but it handles only png images ... I'd like to have some imagelist that allows combining of pngimages with bitmaps, as I'm using lots of bitmaps, and I do not want to spend coming week converting those bitmaps to pngs, yet I want to use be able to add PNG images for coming features ...
So far I used to convert the PNGs to bitmaps using GIMP if I wasn't able to find any replacement.
png2bmp and bmp2png come to the rescue for automated commandline conversion of those image files.
As of Delphi 2009, the TImageList supports PNG images natively as Nick Hodges announced.
This doesnt answer your question, but if you do need to convert them all may I suggest the wonderful ImageMagik over GIMP, it will make your life super easy and convert all your files with one easy script.
The TImageList component in Delphi 2009 and up handles PNG and BMP files, among many others.
I have 4 small tiff images and I would like to generate a big one by merging the 4 single one. Does anyone know how to do it directly with Delphi or some good component that could do it?
You could use GraphicEx by Mike Lischke to load the Tiff images:
http://www.soft-gems.net/index.php?option=com_content&task=view&id=13&Itemid=33
ImageMagick is a command line application that can do such kind of operations on different image file formats including tiff.
The API seems to be usable from Delphi, see PascalMagick.
Another excellent graphics library for Delphi is Graphics32
Edit: As Vegar said, it looks that Graphics32 cannot be used to load TIFF format.
Another library you can use is FreeImage. It supports loading and writing of TIFF files. Beware: the Delphi wrapper is not actively maintained, but it works. We use it in our software to display previews of images.
ImageEn one of the best Image libraries for Delphi, and it's native VCL ;-)
Im a newbie programmer in Delphi. I need help, I have a small project which I need to display all kind of image format.
Please suggest what should I do or any component in delphi that support all image format? thanks for the help in advance.
Have a look at the GraphicEx library available from www.soft-gems.net. This should give you most (if not all) of the formats you want.
I found a Library that suites my need. It called vampyre library and works amazing. It support TIFF,tif, animating gif and many more
You can use several image types with the standard TImage component. At least bmp and jpg (if you use the Jpeg unit).
Version 2009 added some more. Image formats (I thought at least png and wmf).
There are a lot of third party components for image display/processing. A google search will show them all.
GraphicEx should be a good start. It's free and contains the most used formats.
Both ImageEn and Imaging Toolkit for Delphi offer wide range of supported format
and you can find more in torry site