【发布时间】:2026-01-12 04:30:01
【问题描述】:
我正在使用 ImageQuick 工具来压缩 DAM 图像。我正在使用下面的 sn-p 进行转换。
try {
System.out.println(" Image is Processing :: " + assetDetails.getName() + "Original Size :: " + assetDetails.getSize());
ProcessBuilder pb = new ProcessBuilder("C:\\Program Files\\ImageMagick-6.9.9-Q16\\convert.exe", "-quality", "85%", assetDetails.getAssetNode().getPath(), assetDetails.getAssetNode().getPath());
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
System.out.println(p.waitFor());
session.save();
} catch (final IOException | RepositoryException | InterruptedException ex) {
ex.printStackTrace();
}
得到如下错误:
Image is Processing :: A.jpgOriginal Size :: 323.8 KB
convert.exe: unable to open image `/content/dam/A.jpg': No such file or directory @ error/blob.c/OpenBlob/2761.
convert.exe: no images defined `/content/dam/A.jpg' @ error/convert.c/ConvertImageCommand/3258.
这里的代码是从本地的 /content/dam 中寻找文件。如何对现有图像执行此操作。
如果我在路径之前添加服务器名称,则会出现以下错误:
convert.exe: no decode delegate for this image format `' @ error/constitute.c/ReadImage/504.
convert.exe: no data returned `http://localhost:4502/content/dam/A.jpg' @ error/url.c/ReadURLImage/247.
convert.exe: no images defined `http://localhost:4502/content/dam/A.jpg' @ error/convert.c/ConvertImageCommand/3258.
【问题讨论】:
-
你为什么用aem标记它?好像不相关,看标签说明
-
实际上,资产托管在 AEM 服务器上。
-
您似乎使用了错误的路径(linux 路径,而不是 windows 路径),请确保使用正确的路径。
标签: java aem processbuilder imagemagick-convert