您可以在一个样式(Style)中包含多个图片处理参数,快速实现复杂的图片处理操作。本文介绍如何创建和使用图片样式。

创建样式

一个存储空间(Bucket)最多可创建50个样式,这些样式仅可以作用于该Bucket下的图片文件。如您的业务有更多样式的需求,请联系技术支持

  1. 登录OSS管理控制台
  2. 单击Bucket列表,之后单击目标Bucket名称。
  3. 选择数据处理 > 图片处理,然后单击新建样式
  4. 新建样式面板配置您的样式。
    您可以使用 基础编辑高级编辑两种方式新建样式:
    • 基础编辑:选择您需要的图片处理方式,例如缩放图片、添加水印、修改图片格式等。
    • 高级编辑:使用API代码编辑图片处理方式,格式为image/action1,parame_value1/action2,parame_value2/...

      例如image/resize,p_63/quality,q_90表示先将图片缩放到原图的63%,再设置图片相对质量为90%。

      说明 若您需要在样式中同时包含水印图片和水印文字的操作,请使用 高级编辑新建样式。

    图片处理参数的更多信息,请参见图片处理各参数对应文档。例如您需要查看图片缩放参数,请参见图片缩放

  5. 单击确定

样式使用规则

图片样式配置完成后,您可以使用样式替换图片处理的参数,使用方式如下:
说明 如使用样式处理动态图片(如GIF格式的图片),需要在样式中加入格式转换参数 /format,gif,否则可能会导致动态图片在处理后变为静态图。
  • 图片处理URL

    您可以直接将图片样式添加到图片的访问URL上,格式为:http(s)//:BucketName.Endpoint/ObjectName?x-oss-process=style/<StyleName>

    示例:https://image-demo-oss-zhangjiakou.oss-cn-zhangjiakou.aliyuncs.com/example.jpg?x-oss-process=style/small

    若您设置了自定义分隔符,可使用分隔符代替?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();
    更多语言的SDK demo请参见:

将样式应用于其他Bucket

您可以通过样式的导出和导入功能,将某个Bucket中的样式快速应用于其他Bucket。

  1. 在Bucket管理页面,选择数据处理 > 图片处理
  2. 单击导出样式,在另存为对话框选择样式的保存位置,之后单击保存
  3. 在目标Bucket的图片处理页签,单击导入样式
  4. 打开对话框选择刚导出的样式文件,然后单击打开
    样式导入完成后,即可在新的Bucket中使用这些样式处理图片文件。