此功能仅支持通过控制台代码编辑模式和接口调用模式使用。
使用格式转换功能时,默认输出的jpg格式是标准型的jpg(Baseline JPEG)。如果需 要输出能够渐进显示的jpeg(Progressive JPEG),使用此参数。具体参数说明如表 12-2所示。
● 标准型jpg格式图片的呈现方式:自上而下显示。
● 渐进显示jpeg格式图片的呈现方式:由模糊逐渐清晰。
操作名称:interlace 表12-2 渐进显示
参数 取值说明 代码样例
value 取值为0或1。
0:表示输出为自上而下显 示的jpg格式图片。
1:表示输出为可以渐进显 示的jpeg格式图片。
image/format,jpg/
interlace,1
示例
图片处理特性指南 12 转化格式
● 将图片输出为自上而下显示的jpg格式图片。
https://e-share.obs.cn-north-1.myhuaweicloud.com/example.jpg?x-image-process=image/format,jpg/interlace,0
图片处理特性指南 12 转化格式
13 压缩图片
此功能支持在控制台代码编辑模式和接口调用模式使用。
可以对输出格式为jpg的图片进行图片压缩,不使用压缩则可能会使图片占用的空间变 大。具体参数说明如表13-1所示。
操作名称:quality
表13-1 图片压缩
参数 取值说明 代码样例
q 图片的相对质量,即将图片按照原图的 q%进行压缩。取值范围为[1,100]。
压缩公式:目标图质量=原图质量 * q%
例如:如果原图质量为100%,将图片 压缩至80%的相对质量,则目标图片的 质量为80%。如果原图的质量为80%,
将图片压缩至80%的相对质量,则目标 图片的质量为64%。
image/
resize,w_100,h_100/
quality,q_80
Q 图片的绝对质量,即直接将图片压缩为 Q%,与原图不存在相对关系,不依赖 于原图。取值范围为[1,100]。
压缩公式:
例如:如果原图质量为100%,将图片 压缩至80%的绝对质量,则目标图片的 质量为80%。如果原图质量为70%,将 图片压缩至80%的绝对质量,则目标图
图片处理特性指南 13 压缩图片
说明
● q参数仅对输出格式为jpg的图片有效。
● 如果同时使用了q和Q参数,则以Q为输出结果。
● 输出格式为jpg格式以外的图片使用此参数则不会产生效果,也不会产生影响。
示例
● 先将图片缩略为高和宽均为100,输出相对质量80%格式为jpg的目标图。
https://e-share.obs.cn-north-1.myhuaweicloud.com/example.jpg?x-image-process=image/resize,w_100,h_100/quality,q_80
● 先将图片缩略为高和宽均为100,输出绝对质量80%格式为jpg的目标图。
https://e-share.obs.cn-north-1.myhuaweicloud.com/example.jpg?x-image-process=image/resize,w_100,h_100/quality,Q_80
图片处理特性指南 13 压缩图片
14 设置图片瘦身
图片瘦身支持通过OBS控制台代码编辑模式和接口调用模式使用。
图片瘦身是对图片压缩功能的简化,操作原理为输出绝对质量为75%的图片。无需配 置参数,通过操作命令即可完成图片瘦身。
操作名称:imageslim 说明
● 仅支持对jpg格式的图片进行瘦身。
● 建议在其他图片处理操作后再进行图片瘦身。
示例
● 先将图片缩略为高和宽均为100,再对缩略后的图片进行瘦身。
https://e-share.obs.cn-north-1.myhuaweicloud.com/example.jpg?x-image-process=image/resize,w_100,h_100/imageslim
图片处理特性指南 14 设置图片瘦身
15 处理图片持久化
图片处理持久化支持将处理后的图片异步存储至指定的OBS桶中,方便下次直接访问 处理后的图片,减少图片处理花费的时间,提升用户体验。
图片处理持久化目前仅支持通过接口调用模式使用。在图片处理请求接口中,以参数 名=参数值的格式,发送图片处理持久化请求,具体参数说明如表15-1所示。
表15-1 图片处理持久化
参数名 参数值 说明
x-image-save-object objectName 必填参数。
指定目标对象名称,即处理后的图片存储至桶中 的对象名。
对象命名要求如下:
● 不能包含以下特殊字符:\:*?"<>|
● 范围为1到1023位。
x-image-save-bucket bucketName 选填参数。
指定目标存储桶,处理后的图片将存储至该桶。
如果不指定的话将默认保存至当前桶。
桶名范围为1到64位,且必须是在OBS中已存在的 桶。
Java示例代码:
ObsClient obsClient = null;
String endPoint = "obs-endpoint"; // 当前所在region String ak = "your ak"; // 需填写Access Key ID String sk = "your sk"; // 需填写Secret Access Key try {
ObsConfiguration config = new ObsConfiguration();
config.setEndPoint(endPoint);
obsClient = new ObsClient(ak,sk ,config);
TemporarySignatureRequest request = new TemporarySignatureRequest();
request.setObjectKey("test.jpeg"); // 处理前的原对象名 Map<String, Object> queryParams = new HashMap<>();
queryParams.put("x-image-process", "image/resize,w_100");
String objectName = "your saves objectName"; // 处理后的对象名 // 非必选参数
图片处理特性指南 15 处理图片持久化
String bucketName = "your saves Bucket"; // 处理后保存的桶名
queryParams.put("x-image-save-object", ServiceUtils.toBase64(objectName.getBytes("UTF-8")));
queryParams.put("x-image-save-bucket", ServiceUtils.toBase64(bucketName.getBytes("UTF-8")));
request.setQueryParams(queryParams);
request.setBucketName("your bucket"); // 原对象的桶
TemporarySignatureResponse response = obsClient.createTemporarySignature(request);
// 访问的url
response.getSignedUrl();
} catch (Exception e) {
● 对象名和桶名都必须是URL安全base64编码。encodedObject =
url_safe_base64_encode(name)。例如对象名为“panda.png”, 编码过后的内容为
“cGFuZGEucG5n”。
● 若报签名匹配错误,请检查AK/SK是否正确,以及访问的URL与代码生成的签名URL是否保 持一致。
● 当前暂不支持带range头域的持久化。
图片处理特性指南 15 处理图片持久化