当我运行命令制作图像时,我试图让 ImageMagick 从 grails 运行以转换一些图像,但没有任何 react 。我没有收到任何错误,没有任何信息返回任何内容。我已经尝试运行其他命令,如 touch 和 ps ux 只是为了看看它们是否工作并且它们都工作正常。似乎 imagemagick 命令迷路了,我不知道该怎么办。这是我一直在使用的代码。
String command = CH.config.ImageMagickPath + "/convert -size 40x20 xc:red xc:blue -append -rotate 90 append_rotate.gif"
println command
command.execute()
CH.config.ImageMagickPath 设置为 imagemagick/bin 所在的位置。我已经采取了
打印命令
并在终端中运行它,它工作正常。有什么理由我不能让 IM 从 grails 工作吗?
好的,我只使用 java 对其进行编码,现在我收到此错误:
dyld:库未加载:/ImageMagick-6.6.1/lib/libMagickCore.3.dylib
引用自:/Library/ImageMagick/bin/convert
原因:找不到图片
最佳答案
我刚刚做了一些非常相似的事情:
def convert = ["/usr/bin/convert","/opt/local/bin/convert"].find( { new File(it as String).exists() })
File thumbnail = new File(f.getParentFile(),FilenameUtils.getBaseName(f.getName()) + ".thumbnail.png")
ProcessBuilder pb = new ProcessBuilder()
.command(convert, f.getName(), "-thumbnail", "128x128>","-bordercolor","snow","-background","black", "-polaroid", "0", thumbnail.getName())
.directory(f.getParentFile());
int result = pb.start().waitFor()
if( result != 0 ){
throw new ImageMagickException("thumbnail generation failured, return code:" + result);
}
它有点冗长(Java 在我的脑海中根深蒂固)但它确实有效。
请注意
String.execute
返回一个进程对象,需要调用waitFor()
在检查任何生成的文件或其他文件之前。还要确保检查此返回代码以查看,因为这会提示您出了什么问题。
关于grails - ImageMagick 和 Grails 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2971854/