如何使用ColdFusion中的ImageMagick

时间:2009-04-15 12:29:35

标签: coldfusion imagemagick jmagick

ColdFusion有一个很好的cfimage标签,可以很好地工作。但是,它不允许操纵矢量格式。这导致我继续搜索第三方工具来做一些“图像魔术”。

我决定用ColdFusion尝试ImageMagick。我读了几篇帖子,上面写着“我曾经在ColdFusion工作过10年的ImageMagick”。这是鼓舞人心的,但在遇到问题时并不是特别有用。

我尝试了以下内容:

  1. cfexecute,带有运行命令行'convert'命令的参数。 ColdFusion页面什么都不产生 - 只是一个空页面。图像未转换。浏览器没有例外或文本。 ImageMagick命令'convert image.eps image.jpg'可以从Windows命令行完美运行,但不能从ColdFusion运行。

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

  3. 欢迎任何建议。

    谢谢!

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

3 个答案:

答案 0 :(得分:3)

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

  1. 在盒子上安装了ImageMagick和Ghostscript。 Ghostscript用于矢量图形处理。
  2. 使用CFEXECUTE标签调用IM参数:

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

  3. 评论:

    一个。在'name'属性中写入ImageMagic可执行文件之一的完整路径(例如,convert.exe)。

    湾写入源图像和目标图像的完整路径。请注意其他引号 - 如果完整路径有空格(C:\ Program Files),则必须用引号括起每个图像名称。由于Coldfusion解析'arguments'属性,你必须使用附加引号来屏蔽引用,例如 - “”C:\ Program Files \“”。

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

    谢谢大家的回答和兴趣。

    PS:补充提示:

    • ImageMagick提供多种格式 - 从常规JPEG到Photoshop * .psd文件。但是,对于像Encapsulated Postscript * .eps这样的矢量格式,你需要安装Ghostscript;
    • 您可以使用Adobe PDF和Adobe Illustrator(* .ai)格式进行小型黑客攻击 - 将它们重命名为* .eps并让ImageMagick将它们视为Encapsulated Postscript矢量文件。这至少允许将矢量文件转换为位图;
    • 进程是资源密集型的,请考虑增加Coldfusion的JVM内存限制。

答案 1 :(得分:0)

cfexecute应该有效。

答案 2 :(得分:0)

还要考虑cfx_image ..这是一个很好的标签,激发了cfimage。我相信它也有矢量图像。没有太多我无法用它做的。