图片处理规则

本文介绍图片处理中涉及的规则,包括图像压缩、格式转换和色彩调整等,帮助您优化图片质量和处理效率。

顺序无关

转换参数中的键值对是与顺序无关的,例如“120w_120h_90Q”和“90Q_120w_120h”都能获取到所需的图片。系统会按照本规范定义的顺序重新排序参数后处理。为了避免理解误差并简化处理方式,IMG会按照文档中出现的顺序对参数进行排序后处理。例如,“2x_100w_100h”会被理解为“100w_100h_2x”,得到200*200的图片。

覆盖处理

如果转换参数中出现多个相同“键”,后面定义的覆盖前面定义。如“120w_120h_240w”等同于“120h_240w”。

冲突处理

请参见每个参数中关于冲突的说明。

长边与短边

由于图片缩放过程中,原图尺寸与缩放尺寸不一定是相同比例,需要指定以长边还是短边优先进行缩放,如原图200 * 400(比例1:2),需要缩放为100 * 100(比例1:1)。长边优先时(e=0),缩放为50 * 100;短边优先时(e=1),缩放为100 * 200;若不特别指定,则代表长边优先。

URL安全的Base64位编码

在图片处理服务中,有很多参数需要转换为Base64编码,参见RFC4648。注意这里的URL安全Base64编码只是用在水印操作某些特定参数(文字水印的文字内容、文字颜色、文字字体及图片水印的水印对象),不要将其用在签名字符串(Signature)的内容。编码的格式如下:

  • 先将内容编码成Base64结果;

  • 将结果中的加号(+)替换成短划线(-);

  • 将结果中的正斜线(/)替换成下划线(_);

  • 将结果中尾部的等号(=)删除。

Python为例子

import base64
input='wqy-microhei'
print(base64.urlsafe_b64encode(input))