【问题标题】:GraphicEx with Delphi 10.1 Berlin带有 Delphi 10.1 Berlin 的 GraphicEx
【发布时间】:2016-12-13 20:11:02
【问题描述】:

我在 Delphi 7 中安装了GraphicEx(一个 Delphi 图像加载器库),它运行良好。

现在,当我尝试在 Delphi 10.1 Berlin 中安装它时,出现错误:

[dcc32 Error] JPG.pas(1136): E2065 Unsatisfied forward or external declaration: 'jpeg_reset_huff_decode' 
[dcc32 Error] JPG.pas(1258): E2065 Unsatisfied forward or external declaration: '@jfwrite'
[dcc32 Error] JPG.pas(1258): E2065 Unsatisfied forward or external declaration: '@jfflush'
[dcc32 Error] JPG.pas(1258): E2065 Unsatisfied forward or external declaration: '@jfread'
[dcc32 Fatal Error] GraphicEx.pas(613): F2063 Could not compile used unit 'JPG.pas'

那么,如何在 Delphi 10.1 Berlin 中使用 GraphicEx?

【问题讨论】:

  • 您知道GraphicEx 的速度与经典的Delphi 方式(TImage)相比如何?它更快吗?
  • @Rigel TImage 更快。如果您需要更多图像格式(例如 eps),您可以使用 GraphicEx。

标签: delphi delphi-10.1-berlin


【解决方案1】:

如您链接到的页面所述,此库尚未更新到最新版本的 Delphi。但是,您很可能会发现不再需要它。最近的 Delphi 版本开箱即用地支持 JPEG 和 PNG 图像格式。

通过删除对该库的引用并使用内置的图像格式支持来解决您的问题。

如果您将该库用于它提供的更深奥的图像格式,那么您将需要更新它以使用您的 Delphi 版本。

首先,您报告的编译错误仅仅是因为您没有在搜索路径中添加必要的文件夹。定义这些函数的目标文件位于3rd party\LibJPG\obj 文件夹中。您必须将其添加到您的搜索路径中。当你这样做时,你会得到另一个错误。继续一一解决。

【讨论】:

  • 开箱即用的 JPEG 支持最近才 20 岁,有一些变化...请改写那部分 - OP 很惊讶为什么代码无法与旧 IJG 链接。
  • 我无法理解那条评论
  • 我使用 GraphicEx 的目标是支持其他常见的图像格式,例如 (.tif; *.tiff), (.bw, .rgb, *.rgba , *.sgi), Autodesk 图像文件 (.cel; .pic), Kodak Photo-CD 图像 (.pcd) Photoshop 图像 (*.psd, *.pdd) 等.
  • 好的。然后,您需要更新它以使用您的 Delphi 版本。您是从 github 的最新版本开始的吗?
  • 新说明:Nabbla 已经对 GraphicEx 进行了更新,几乎解决了所有问题并且效果很好。感谢纳布拉github.com/nabbla/GraphicEx
最近更新 更多