Imagemagick 如何在DAM AEM6.3中压缩图像?

Imagemagick 如何在DAM AEM6.3中压缩图像?,imagemagick,aem,assets,image-compression,dam,Imagemagick,Aem,Assets,Image Compression,Dam,我们正在努力提高我们网站的页面分数(谷歌)。其中一个选项是“图像优化” 由于大坝中有大量图像,我们如何压缩/优化它们AEM是否有任何此类工具来实现这一点 ImageMagick是实现这一目标的工具之一。我们是否需要将其与AEM集成,或者在使用该工具压缩图像后,我们必须重新上传所有图像 有什么建议吗?AEM提供了“图像优化”选项,但这是一个广泛的主题,因此没有“魔法”开关,您可以转向“优化”图像。这一切归结为从AEM传输到用户浏览器的千字节或兆字节的数量 资产的规模受两方面的影响: 资源维度(宽度

我们正在努力提高我们网站的页面分数(谷歌)。其中一个选项是“图像优化”

由于大坝中有大量图像,我们如何压缩/优化它们AEM是否有任何此类工具来实现这一点

ImageMagick是实现这一目标的工具之一。我们是否需要将其与AEM集成,或者在使用该工具压缩图像后,我们必须重新上传所有图像

有什么建议吗?

AEM提供了“图像优化”选项,但这是一个广泛的主题,因此没有“魔法”开关,您可以转向“优化”图像。这一切归结为从AEM传输到用户浏览器的千字节或兆字节的数量

资产的规模受两方面的影响:

  • 资源维度(宽度和高度)
  • 压缩
  • 最大的收益可以通过简单地减少资产规模来实现。AEM已经做到了。如果您查看资产格式副本,您会注意到不仅有所谓的原始格式副本,还有其他几个不同维度的格式副本

    MyImage.jpg
    └── jcr:content
        └── renditions/
            ├── cq5dam.thumbnail.140.100.png
            ├── cq5dam.thumbnail.319.319.png
            ├── cq5dam.thumbnail.48.48.png
            └── original
    
    格式副本名称中的数字是格式副本的宽度和高度。因此有一个版本的
    MyImage.jpg
    ,它的宽度为140px,高度为100px,以此类推

    上载图像时,这一切都由
    DAM Update Asset
    工作流完成,并且可以进行修改以生成具有不同维度的更多格式副本

    MyImage.jpg
    └── jcr:content
        └── renditions/
            ├── cq5dam.thumbnail.140.100.png
            ├── cq5dam.thumbnail.319.319.png
            ├── cq5dam.thumbnail.48.48.png
            └── original
    
    但生成不同维度的图像只是故事的一半。AEM必须在正确的时间选择具有正确维度的格式副本。这通常被称为“响应图像”。AEM图像组件不支持开箱即用的“响应”图像,有几种方法可以实现此功能

    其要点是图像组件必须包含不同大小格式副本的URL列表。当呈现页面时,客户端JavaScript确定当前屏幕大小的最佳格式副本,并将URL添加到
    img
    tags
    src
    属性

    我建议您看看AEM中未包含的全新AEM核心组件。这些核心组件包含支持响应图像的图像组件。你可以在这里阅读更多关于这些的信息:

  • 通常,这样的组件不会使用DAM更新资产工作流已经生成的“静态”格式副本,而是依赖于自适应图像Servlet。这个servlet基本上获取资产路径和目标宽度,并以请求的宽度返回资产。为了避免反复执行此操作,您应该允许调度程序缓存生成的映像

    这些只是你能做的最基本的事情。还有很多其他的事情可以做,但在“优化”方面,所有这些事情的收益都越来越少。

    AEM提供了“图像优化”选项,但这是一个广泛的主题,因此没有“魔法”开关,您可以转向“优化”您的图像。这一切归结为从AEM传输到用户浏览器的千字节或兆字节的数量

    资产的规模受两方面的影响:

  • 资源维度(宽度和高度)
  • 压缩
  • 最大的收益可以通过简单地减少资产规模来实现。AEM已经做到了。如果您查看资产格式副本,您会注意到不仅有所谓的原始格式副本,还有其他几个不同维度的格式副本

    MyImage.jpg
    └── jcr:content
        └── renditions/
            ├── cq5dam.thumbnail.140.100.png
            ├── cq5dam.thumbnail.319.319.png
            ├── cq5dam.thumbnail.48.48.png
            └── original
    
    格式副本名称中的数字是格式副本的宽度和高度。因此有一个版本的
    MyImage.jpg
    ,它的宽度为140px,高度为100px,以此类推

    上载图像时,这一切都由
    DAM Update Asset
    工作流完成,并且可以进行修改以生成具有不同维度的更多格式副本

    MyImage.jpg
    └── jcr:content
        └── renditions/
            ├── cq5dam.thumbnail.140.100.png
            ├── cq5dam.thumbnail.319.319.png
            ├── cq5dam.thumbnail.48.48.png
            └── original
    
    但生成不同维度的图像只是故事的一半。AEM必须在正确的时间选择具有正确维度的格式副本。这通常被称为“响应图像”。AEM图像组件不支持开箱即用的“响应”图像,有几种方法可以实现此功能

    其要点是图像组件必须包含不同大小格式副本的URL列表。当呈现页面时,客户端JavaScript确定当前屏幕大小的最佳格式副本,并将URL添加到
    img
    tags
    src
    属性

    我建议您看看AEM中未包含的全新AEM核心组件。这些核心组件包含支持响应图像的图像组件。你可以在这里阅读更多关于这些的信息:

  • 通常,这样的组件不会使用DAM更新资产工作流已经生成的“静态”格式副本,而是依赖于自适应图像Servlet。这个servlet基本上获取资产路径和目标宽度,并以请求的宽度返回资产。为了避免反复执行此操作,您应该允许调度程序缓存生成的映像


    这些只是你能做的最基本的事情。还有很多其他的事情可以做,但它们在“优化”方面的收益越来越少。

    我也有同样的需求,我也研究了ImageMagick并研究了各种选项。最终,我定制了用于创建图像格式副本的工作流,以便与其他工具集成。我对它们进行了修改,使用API将AEM制作的格式副本图像自动发送到Kraken,在那里它们将被完全网络优化(使用默认的Kraken设置)。我用他们的代码来获取这个集成的基本代码。所以最终我得到了一张经过适当网络优化的图片