在Delphi中显示一些JPG文件的问题

时间:2009-08-23 17:49:23

标签: delphi jpeg

我试图用Delphi中的TImage组件打开一些JPEG文件。我还添加了Jpeg单元。我可以打开大多数jpg文件,没有问题。

但是当我尝试打开一些JPG时,该程序只是抛出异常。

我也尝试在设计模式下加载图像,但是有一些问题。在设计模式中,例外是:

模块'vcljpeg70.bpl'中地址402672A1的访问冲突。写下地址08E84000

为什么我无法打开那个JPG?他们没有腐败。我在一些工具中检查过它们,比如savantools EXIF viewer。

这是其中一张图片的网址: http://xs842.xs.to/xs842/09340/backpic435.jpg

非常感谢

PS: 我的Delphi版本是7. Borland Delphi 7

6 个答案:

答案 0 :(得分:12)

您可能遇到此问题的原因是文件类型。 Delphi存在显示使用CMYK编码的JPEG图像的问题,而不是默认的RGB编码。 CMYK是一种通常用于打印设计的格式,尝试并始终将图像编码为RGB格式,以避免Delphi出现此问题。

Delphi jpeg.dcu的补丁

再见。

答案 1 :(得分:6)

有趣。 Internet Explorer Google Chrome 都不会显示您链接到的JPEG图片。我没有得到 404 Not Found 错误,我只是得到一个图像占位符,表示图像无法正确打开/显示。

FireFox 显示图片。

您确定所涉及的JPG文件中没有可疑或至少有些不寻常的东西吗?

更新:问题中链接的文件在 PaintShop Pro (旧版本6.0安装)中打开 - 如果我只是重新保存为标准编码JPEG , IE Chrome 都会按照我的预期显示新保存的图像。对于一些JPEG应用程序可以处理但不是全部的原始JPEG编码肯定会有点“奇怪”,包括一些“主要参与者”,而不仅仅是Delphi。 :)

答案 2 :(得分:2)

如果本机存在问题,请查看免费图像库以获取Delphi中的替代JPEG支持。 Free Image是一个开源库,可以让你使用Delphi / BCB /和其他人的JPEG / PNG / ....非常好的图书馆恕我直言。

http://freeimage.sourceforge.net/

答案 3 :(得分:2)

我用十六进制编辑器查看了该文件,找到了3个JFIF头文件。提取每个部分后,我找到了2个缩略图和一个图像。没什么特别的,因为embedded thumbnails seem to be part of the EXIF2 standard

缩略图本身在Delphi中运行良好,并且可以使用我尝试过的几乎所有软件将文件转换为可读的内容。

无论如何,此页面将为您提供有关图片的详细信息,以及内部标题(只需将图片的网址粘贴到文本框中):

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

答案 4 :(得分:1)

我得到了同样的错误。这似乎是Delphi的JPEG库中的一个错误。您应该将其报告给QC。

答案 5 :(得分:0)

SimDesign的NativeJpg可以打开该文件。它是一个完全用Delphi编写的JPEG库,当我们遇到它们时,作者很好地添加了对新扩展和颜色空间的支持。除了TImage支持的TGraphic后代之外,它还暴露了许多用于操作JPEG的低级接口,但我还没有使用它们。