【问题标题】:How to preview an image with TFileOpenDialog如何使用 TFileOpenDialog 预览图像
【发布时间】:2013-05-24 23:20:10
【问题描述】:

有谁知道如何在 TFileOpenDialog 预览中显示图像?

我正在使用 ImageEn 来显示图像信息并向对话框添加额外的文件类型支持。例如...我可以加载关于 jp2、j2k 和其他不支持的文件类型的图像信息,但是如何使用 ImageEn 加载不支持的图像类型进行预览。

我在运行良好的对话框中显示图像信息,但我找不到任何有关如何将不受支持的图像加载到任何地方的 PreviewHandler 的信息。我可以使用 ImageEnIO 来获取文件信息以及图像的位图。

TFileOpenDialog 是使用预览处理程序来显示图像还是需要其他方式?

很抱歉,我没有显示图像的代码,但我不知道如何实现它。

Rodrigo 评论了在 Delphi VCL 应用程序中托管预览处理程序。 Windows 资源管理器不使用预览处理程序来预览图像......所以我假设 TFileOpenDialog 使用与 Windows 资源管理器相同的 API,但我什至不确定这一点。 http://theroadtodelphi.wordpress.com/2013/05/24/hosting-preview-handlers-in-delphi-vcl-applications/

如果这个问题太宽泛而无法在此处接受,我将删除该问题。

【问题讨论】:

  • 可以选择 OpenPictureDialog 吗?
  • 不...我知道该怎么做。需要用 TFileOpenDialog 来做。
  • @RRUZ,Remy Lebeau 已发布 Use IShellItemImageFactory,因为它在内部委托给 IThumbnailProvider(当 IThumbnailProvider 不可用时委托给 IExractImage 和 IExtractIcon)。 embarcadero.newsgroups.archived.at/public.delphi.nativeapi/…IShellItemImageFactory 是不是更好用?
  • @RRUZ,我想说最好改用Preview Handlers

标签: delphi delphi-2010


【解决方案1】:

...that the windows explorer does not use a preview handler to preview the images. 我说的是标准图像格式,如 gif、jpeg、bmp、png 等。对于其他自定义格式,您必须实现 Preview 处理程序,此外,您可以使用 Thumbnail HandlersIThumbnailProvider 接口注册缩略图。

【讨论】:

  • 如果您没有完全掌握这一点,您必须做的是实现一个预览处理程序并将其注册到 shell。您您的 delphi 应用程序之外实现这个。这是因为它是在文件对话框中显示预览的 shell,即使该对话框托管在您的应用程序中。
  • 谢谢大卫。它比我想象的要复杂得多,但感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多