您在此处:
Dynamic Imaging Service
B2C Commerce Dynamic Imaging Service 消除了上传不同尺寸图像以满足网店要求的需要。上传高分辨率源图像后,Dynamic Imaging 会为每个图像应用程序(产品页面、目录页面、推荐产品、搜索结果等)设置正确大小的格式。应用参数来控制图像大小、裁剪、叠加、格式、背景颜色和质量设置。
例如,您有一个产品目录包含 100,000 个项目的网店。网页设计支持最大 150x150 像素的图像,并且每行显示客户搜索结果的四张图像。您的网页设计人员创建了不同的布局,现在产品搜索仅显示三张每行大小为 250x250 像素的图像。Dynamic Imaging Service 不会上传调整大小的图像,而是调整现有图像的大小。
创建图像转换 URL
URLUtils 和 MediaFile 类从单个高分辨率图像动态生成多个图像资源。图像转换 URL 标识可缓存资源并指定如何转换它。
使用这些类是因为 API 可以验证转换参数,并保护您免受将来对基本 URL 模式的更改。如果对 URL 进行硬编码,则在模式更改时,它可能会停止工作。
JavaScript 对象文本包含转换参数。每个方法都返回一个从转换参数派生的 URL。如果未将参数传递给 Dynamic Imaging Service,则映像将以其原始配置传递。
示例:URL 参数 cy 替换转换参数 cropY。
URLUtils 类包括这些用于生成图像转换 URL 的方法。
公网URL imageURL( String path, Object transform );
公网 URL imageURL( String context, String contextID, String relPath, Object transform );
公共 URL absImage( 字符串路径, 对象转换 );
公共 URL absImage( String context, String contextID, String relPath, Object transform );
公网网址 httpImage( String path, Object transform );
公共 URL httpImage( String context, String contextID, String relPath, Object transform );
公网网址 httpsImage( String path, Object transform );
公共 URL httpsImage( String context, String contextID, String relPath, Object transform );
MediaFile 类包括这些用于生成图像转换 URL 的方法。
公网 URL getURL( 对象 转换 );
公网 URL getAbsURL( 对象 transform );
公网 URL getHttpURL( 对象转换 );
公网 URL getHttpsURL( 对象转换 );
支持的转换
| 类型 | 转换对象参数(括号内的 URL 参数) | 描述 |
|---|---|---|
| 规模 |
scaleWidth (sw)、 scaleHeight (sh)、 scaleMode (sm)
|
仅当与 scaleMode 的默认参数为 如果将 |
| 覆盖 |
imageX (ox)、 imageY (oy)、 imageURI (oimg)
|
支持的格式为 GIF、PNG、JPG、JP2。 由于动画 GIF 可能会导致帧伪影,因此请保持动画 GIF 的纵横比。 将 路径必须支持支持服务的查询字符串参数。对叠加图像使用转换后的图像。 如果叠加图像超出主图像的边界,则动态成像会裁剪叠加图像以匹配主图像的尺寸。 ( |
| 农作物 |
cropX (cx)、 cropY (cy)、 cropWidth (cw)、 cropHeight (ch)
|
|
| 格式 |
格式 (
|
format transformation 参数指定图像的目标格式。支持的目标格式包括 AVIF、gif、jp2、jpg、jpeg、jxr、png 和 WebP。生成的 URL 路径使用目标格式的文件扩展名。如果未指定目标格式,则不执行转换。
在 |
| 质量 |
质量 (Q)
|
quality 参数指定 JPG 和 JP2 图像的质量设置以及 PNG 图像的压缩级别。 对于 JPG 和 JP2 图像,请将值设置为 1 到 100 以获得最高质量。默认值为 80。省略该值以保留默认值。 对于 PNG 图像,质量设置对 PNG 的外观没有影响,因为压缩始终是无损的。相反,请使用质量设置将 zlib 压缩级别和过滤器类型设置为两位数。第一位数字设置 zlib 压缩级别 (1-9)。第二位数字设置筛选器类型。 如果未提供 PNG 设置或设置为 0,则默认值为 75。如果此设置设置为 100(三位数字),则它实际上等于质量设置 90。 |
| 元数据 |
带
|
strip 参数指定在转换过程中是否从图像中去除元数据,例如 EXIF 和颜色配置文件。 有效值为 |
| 背景 |
BG颜色
|
例如,FF0000 = 红色;FF000077 = 红色,透明度为 50%。 如果省略 alpha 值,则生成的颜色是不透明的。显式传递 00 作为 alpha 值可获得相同的结果。仅当图像输出格式为 PNG 时,Alpha 值才有效。 |
样本调用
对 URLUtils.imageURL( String path, Object transform )的调用:
URLUtils.imageURL( '/<static image path>/image.png', { scaleWidth: 100, format: 'jpg' } );
返回图像转换 URL。
http://< 图像服务器主机名>/dw/image/v2/.../on/demandware.static/.../<static image path>/image.jpg?sw=100&sfrm=png
对 MediaFile.getAbsImageURL( 对象转换 )的调用:
product.image.getAbsImageURL( { scaleWidth: 100 } );
返回图像转换 URL。
http://< 映像服务器主机名>/dw/image/v2/.../on/demandware.static/.../<path to product image>/FG45SDAF.jpg?sw=100
图片指南
- 文件大小:超过 6 MB 的图片不会变换,而是按其原始配置提供。对超大图像的第一个请求返回错误,但后续请求将返回原始配置的图像。
- 尺寸:最大可变换尺寸为 3,000 x 3,000 像素。
- 超时:如果转换未在 29 秒内完成,服务将返回错误 408。避免昂贵的转换,例如放大动画 GIF。
- 浏览器阻止:在非生产环境中,Firefox 跟踪保护在某些情况下会阻止首次转换。为避免此阻塞,请在测试期间将“跟踪保护”设置为“从不”。
动态图像缓存
Dynamic Imaging Service 使用缓存将图像提供给浏览器和应用程序。
- 内容交付网络 (CDN) 实例:图像将被缓存,直到请求缓存失效。新图片素材具有唯一的缓存标识符,不需要显式缓存失效。
- 非 CDN 实例:Dynamic Imaging Service 会在 10 分钟后重新验证图像。
另请参阅:
有关图像转换 URL、新式格式、社区项目和疑难解答的更多帮助,请参阅 相关 Dynamic Imaging Service 主题 。

