如何使用ColdFusion的ImageMagick

Rod*_*kov 3 coldfusion imagemagick jmagick

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

我决定在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” :)

Rod*_*kov 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)。

b。编写源图像和目标图像的完整路径。请注意其他引号-如果完整路径包含空格(C:\ Program Files),则必须在每个图像名称两边加上引号。由于Coldfusion解析了'arguments'属性,因此您必须屏蔽带有其他引号的引号,例如-“” C:\ Program Files \“”。

C。使用timeout属性,可以在Coldfusion进一步执行模板之前为ImageMagic留出一些时间来产生结果。

谢谢大家的回答和关注。

PS:其他提示:

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