Isaac
Isaac

Reputation: 2412

Problem with showing some JPG files in Delphi

i have tried to open some JPEG files in Delphi with TImage component. i also added the Jpeg unit. i can open most of jpg files and there is no problem.

but when i try to open some JPGs, the program just throw an exception.

i also tried to load that images in design mode, but there is some problem. in design mode the exception is:

Access violation at address 402672A1 in module 'vcljpeg70.bpl'. Write of address 08E84000

Why i cannot open that JPGs? they are not corrupted. i checked them in some tools like savantools EXIF viewer.

here is the URL of one of that images: http://xs842.xs.to/xs842/09340/backpic435.jpg

Thanks so much

PS: My Delphi version is 7. Borland Delphi 7

Upvotes: 8

Views: 5716

Answers (6)

Zoë Peterson
Zoë Peterson

Reputation: 13312

SimDesign's NativeJpg can open that file. It's a JPEG library written entirely in Delphi, and the author has been good about adding support for new extensions and color spaces when we've run into them. In addition to a TGraphic descendant for TImage support it exposes lots of lower-level interfaces for manipulating JPEGs, though I haven't used them.

Upvotes: 0

RRUZ
RRUZ

Reputation: 136391

The reason you may be encountering this problem is due to the file type. Delphi has issues displaying JPEG images that have been encoded using CMYK, rather than the default RGB encoding. CMYK is a format that is generally used for Print design, try and always encode your images to RGB format to avoid this issue with Delphi.

Patch for Delphi jpeg.dcu

Bye.

Upvotes: 12

Wouter van Nifterick
Wouter van Nifterick

Reputation: 24086

I've looked at the file with a hex editor, and found 3 JFIF headers. After extracting each part, I found 2 thumbnails and an image. Nothing special, because embedded thumbnails seem to be part of the EXIF2 standard.

The thumbnails themselves load fine in Delphi, and converting the file to something readable can be done with almost every piece of software that I've tried.

Anyway, this page will give you very detailed information about the picture, and what headers are inside (just paste the url of your image in the textbox):

http://www.monster-submit.com/resources/jpeganalyzer/

Upvotes: 2

Deltics
Deltics

Reputation: 23036

Interesting. Neither Internet Explorer nor Google Chrome will display that JPEG image you linked to. I do not get 404 Not Found errors, I simply get an image placeholder, indicating that the image could not be opened/displayed correctly.

FireFox does display the image.

Are you certain that there is not something fishy, or at least slightly unusual, about the JPG files involved?

UPDATE: The file linked to in the question opens in PaintShop Pro (an old version 6.0 installation) - if I then simply re-save as a Standard Encoding JPEG, IE and Chrome both display the newly saved image as I'd expect. There would definitely appear to be something a bit "odd-ball" about the encoding of the original JPEG that some JPEG apps can handle but not all, including some "major players", not just Delphi. :)

Upvotes: 6

QAZ
QAZ

Reputation: 4930

Check out the Free Image library for alternative JPEG support in Delphi if the native one has problems. Free Image is an open source lib that lets you work with JPEG/PNG/... from Delphi/BCB/and others. Very nice library IMHO.

http://freeimage.sourceforge.net/

Upvotes: 2

Mason Wheeler
Mason Wheeler

Reputation: 84540

I get the same error. This appears to be a bug in Delphi's JPEG lib. You should report it to QC.

Upvotes: 1

Related Questions