3

ColdFusion 有一个很棒的 cfimage 标签,可以完美运行。但是,它不允许操纵矢量格式。这使我继续寻找 3rd 方工具来做一些“图像魔术”。

我决定用 ColdFusion 试试 ImageMagick。我读过几篇文章说“我曾经使用 ColdFusion 的 ImageMagick 工作了 X 年”。这是鼓舞人心的,但在遇到问题时并不是特别有用。

我尝试了以下方法:

  1. cfexecute 带参数运行命令行“转换”命令。ColdFusion 页面不产生任何结果 - 只是一个空页面。图像未转换。浏览器没有异常或文本。ImageMagick 命令 'convert image.eps image.jpg' 在 Windows 命令行中完美运行,但在 ColdFusion 中却不行。

  2. Im4java 和 JMagick 包装器直接从 Java 对象运行 IM 命令。我用 CreateObject 函数创建了 Java 对象并试图执行它的方法,但只得到了不同类型的 Java 错误,例如“无法将 image.jpg 转换为整数”。

欢迎任何建议。

谢谢!

PS:我的第一个'stackoverflow' :)

4

3 回答 3

5

经过一些尝试和失败后,我让 ImageMagick (IM) 为我工作。让我简要描述一下如何使用 Coldfusion 的 ImageMagick:

  1. 在盒子上安装 ImageMagick 和 Ghostscript。Ghostscript 用于矢量图形操作。
  2. 使用 CFEXECUTE 标签调用带有参数的 IM:

    <cfexecute name="#FullIMPath#" timeout="60" arguments="""#ExpandPath(filename1)#"" ""#ExpandPath(filename2)#""" />

评论:

一种。在“名称”属性中写入 ImageMagic 可执行文件之一(例如 convert.exe)的完整路径。

湾。为源图像和目标图像编写完整路径。请注意附加引号 - 如果完整路径包含空格(C:\Program Files),则必须将每个图像名称括在双引号中。由于 Coldfusion 解析 'arguments' 属性,因此您必须筛选带有附加引号的引号,例如 - ""C:\Program Files\""。

C。使用 timeout 属性,允许 ImageMagic 在 Coldfusion 进一步执行模板之前产生结果。

谢谢大家的回答和兴趣。

PS:附加提示:

  • ImageMagick 提供多种格式可供使用 - 从常规 JPEG 到 Photoshop *.psd 文件。但是,对于像 Encapsulated Postscript *.eps 这样的矢量格式,您需要安装 Ghostscript;
  • 您可以通过小技巧使用 Adob​​e PDF 和 Adob​​e Illustrator (*.ai) 格式 - 将它们重命名为 *.eps 并让 ImageMagick 将它们视为 Encapsulated Postscript 矢量文件。这至少允许将矢量文件转换为位图;
  • 进程是资源密集型的,请考虑增加 Coldfusion 的 JVM 内存限制。
于 2009-04-28T12:01:46.097 回答
0

cfexecute 应该可以工作。

于 2009-04-16T00:01:27.567 回答
0

还要考虑 cfx_image .. 它是激发 cfimage 灵感的绝佳标签。我相信它也可以做矢量图像。没有什么我做不到的。

于 2009-04-20T15:18:56.653 回答