【发布时间】:2018-04-12 11:07:48
【问题描述】:
我们在 DAM 中有大量 png 图像。我们希望以不影响其质量/分辨率的方式压缩这些图像。我经历了几个选择,想知道最好的一个。
- ImageMagick https://helpx.adobe.com/experience-manager/6-3/assets/using/best-practices-for-imagemagick.html
我们正在使用 AEM 6.0,并且想知道此功能是否会在 6.0 版本中正常运行。此外,这个工具也有一些漏洞。
- DAM 更新资产工作流程
我们可以更新工作流程以添加我们的自定义代码块,并通过使用 JAVA7 IO api 我们可以执行压缩。我们还可以在第一阶段添加一个新的流程步骤,以便在此工作流程启动时可以压缩图像作为第一个操作。欢迎任何其他想法。
- 第三方 API
是否有任何第三方 API 可以使用 CURL 来压缩除了 TinyPNG 之外的图像。
已开始在 6.0 上使用 ImageMagick:
EPS 缩略图(由 ImageMagick 提供支持)步骤如下:
启用Web的再现过程步骤如下:
问题:
- 图像大小未压缩,大小从 206KB 增加到 208KB。
AEM 日志说:
13.04.2018 15:05:43.111 *INFO* [JobHandler: /etc/workflow/instances/server0/2018-04-13_1/update_asset_439:/content/dam/A.jpg/jcr:content/renditions/original] com.day.cq.dam.core.process.CommandLineProcess execute: executing command line ["C:\Program Files\ImageMagick-6.9.9-Q16\convert.exe" -depth 8 -define jpeg:size=319x319 A.jpg -thumbnail 319x319 cq5dam.thumbnail.319.319.png] for asset [/content/dam/A.jpg]. (Size is 208KB of thumbnail generated)
如果我在本地运行,我可以看到文件大小减少到 130KB。
"C:\Program Files\ImageMagick-6.9.9-Q16\convert.exe" -depth 8 -define jpeg:size=319x319 A.jpg -thumbnail 319x319 cq5dam.thumbnail.319.319.png
知道为什么图像在 AEM 上不压缩吗?
【问题讨论】:
-
Imagemagick 比人们想象的更安全。它所谓的漏洞是由于用户没有适当地设置他们的 policy.xml 文件安全。 policy.xml 文件用于此目的并且已经存在很长时间了。请参阅imagemagick.org/script/resources.php 处的 policy.xml。另请参阅imagemagick.org/Usage/formats/#jpg_write 处的 -define jpeg:extent={size} 以将 jpg 文件写入给定文件大小。也许这就是你想要的。
-
嗨,我试过 imagemagick。更新有关我所做更改的问题。
-
我很困惑。你说你有PNG图像,然后你尝试使用
-define JPEG:...减小尺寸,除非你写一个JPEG,否则你也说你不能接受任何质量损失——如果你使用JPEG,这是不可避免的。请澄清。此外,在存储越来越便宜的情况下尝试减小大小似乎很奇怪。 -
我正在上传 jpeg 图片,输出为 png。
-
-define jpg:size 适合阅读 jpg。见imagemagick.org/Usage/formats/#jpg_read。写jpg时,需要使用-define jpg:extent。问题是您正在有损解压缩一个小的 jpg,这会使文件大小变大,然后写入无损压缩的 PNG。因此,除非您将图像 (-thumbnail) 的大小调整到足够小并删除任何元数据,否则输出的 PNG 文件大小将大于输入的 jpg。抱歉,我对 AEM 一无所知。
标签: imagemagick aem