您可以在一个样式(Style)中包含多个图片处理参数,快速实现复杂的图片处理操作。本文介绍如何创建和使用图片样式。
创建样式
一个存储空间(Bucket)最多可创建50个样式,这些样式仅可以作用于该Bucket下的图片文件。如您的业务有更多样式的需求,请联系技术支持。
样式使用规则
图片样式配置完成后,您可以使用样式替换图片处理的参数,使用方式如下:
说明 如使用样式处理动态图片(如GIF格式的图片),需要在样式中加入格式转换参数
/format,gif,否则可能会导致动态图片在处理后变为静态图。
- 图片处理URL
您可以直接将图片样式添加到图片的访问URL上,格式为:
http(s)//:BucketName.Endpoint/ObjectName?x-oss-process=style/<StyleName>
。若您设置了自定义分隔符,可使用分隔符代替
?x-oss-process=style/
内容,进一步简化图片处理URL。例如分隔符设置为英文感叹号(!),则图片处理URL为:
http(s)//:BucketName.Endpoint/ObjectName!StyleName
示例:https://image-demo-oss-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/example.jpg!small
自定义分隔符的配置方式请参见设置自定义分隔符。
- SDK
以下代码以Java SDK为例说明样式的使用规则:
// Endpoint以杭州为例,其它Region请按实际情况填写。 String endpoint = "http://oss-cn-hangzhou.aliyuncs.com"; // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。 String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>"; String bucketName = "<yourBucketName>"; String objectName = "<yourObjectName>"; // 创建OSSClient实例。 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 使用自定义样式处理图片。 String style = "style/<yourCustomStyleName>"; GetObjectRequest request = new GetObjectRequest(bucketName, objectName); request.setProcess(style); // 将图片命名为example-new.jpg后保存在本地。 ossClient.getObject(request, new File("example-new.jpg")); // 关闭OSSClient。 ossClient.shutdown();
将样式应用于其他Bucket
您可以通过样式的导出和导入功能,将某个Bucket中的样式快速应用于其他Bucket。