格式转换

最后更新时间:2021-11-09 17:04:41

    功能概述

    腾讯云数据万象通过 imageMogr2 接口提供格式转换、gif 格式优化、渐进显示功能。

    该功能支持以下处理方式:

    • 下载时处理
    • 上传时处理
    • 云上数据处理

    限制说明

    • gif、webp、tpg 等动图,支持互相转换。
    • jpg、png、bmp、tpg、heif 等静态图片,支持互相转换。

    接口形式

    1. 下载时处理

    download_url?imageMogr2/format/<Format>
                   /cgif/<FrameNumber>
                   /interlace/<Mode>
    

    2. 上传时处理

    PUT /<ObjectKey> HTTP/1.1
    Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
    Date: GMT Date
    Authorization: Auth String
    Pic-Operations: 
    {
    "is_pic_info": 1,
    "rules": [{
        "fileid": "exampleobject",
        "rule": "imageMogr2/format/<Format>
                   /cgif/<FrameNumber>
                   /interlace/<Mode>"
    }]
    }
    

    3. 云上数据处理

    POST /<ObjectKey>?image_process HTTP/1.1
    Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
    Date: GMT Date
    Content-length: Size
    Authorization: Auth String
    Pic-Operations: 
    {
    "is_pic_info": 1,
    "rules": [{
        "fileid": "exampleobject",
        "rule": "imageMogr2/format/<Format>
                   /cgif/<FrameNumber>
                   /interlace/<Mode>"
    }]
    }
    
    说明:

    Authorization: Auth String (详情请参见 请求签名 文档)。

    处理参数说明

    参数 含义
    download_url 文件的访问链接,具体构成为&dxlt;BucketName-APPID>.cos.&dxlt;Region>.myqcloud.com/&dxlt;picture name>,
    例如 examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/picture.jpeg
    /format/&dxlt;Format> 格式转换:目标缩略图的图片格式可为:jpg,bmp,gif,png,webp,yjpeg 等,其中 yjpeg 为数据万象针对 jpeg 格式进行的优化,本质为 jpg 格式;缺省为原图格式。
    /cgif/&dxlt;FrameNumber&dxgt; gif 格式优化:只针对原图为 gif 格式,对 gif 图片格式进行的优化,降帧降颜色。分为以下两种情况:
  • FrameNumber=1,则按照默认帧数30处理,如果图片帧数大于该帧数则截取。
  • FrameNumber 取值( 1,100 ],则将图片压缩到指定帧数 (FrameNumber)。
  • /interlace/&dxlt;Mode> 输出为渐进式 jpg 格式。Mode 可为0或1。0:表示不开启渐进式;1:表示开启渐进式。该参数仅在输出图片格式为 jpg 格式时有效。如果输出非 jpg 图片格式,会忽略该参数,默认值0。
    /ignore-error/1 当处理参数中携带此参数时,针对文件过大导致处理失败的场景,会直接返回原图而不报错

    实际案例

    说明:

    本篇文档中的实际案例仅包含下载时处理,该类处理不会保存处理后的图片至存储桶。如有保存需求,您可查阅 图片持久化处理 文档并配置上传时处理云上数据处理

    案例一:将 jpeg 格式的原图片转换为 png 格式

    http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?imageMogr2/format/png
    

    案例二:将 jpeg 格式的原图片转换为 png 格式并携带私有文件签名

    处理方式同上,仅增加签名部分,并与图片处理参数以“&”连接,示例如下:

    http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?q-sign-algorithm=<signature>&imageMogr2/format/png
    
    说明:

    <signature> 为签名部分,获取方式请参考 请求签名

    注意事项

    为了避免未授权人员通过访问不携带处理参数的链接实现访问和下载原图的情况,您可同时将处理参数签入到请求签名中,处理参数整体是参数的 key,value 为空,如下是简单的示例(仅做样式参考,可能已经过期无法直接访问),详细计算方法请参见 请求签名

    http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?q-sign-algorithm=sha1&q-ak=AKID********************&q-sign-time=1593342360;1593342720&q-key-time=1593342360;1593342720&q-header-list=&q-url-param-list=watermark%252f1%252fimage%252fahr0cdovl2v4yw1wbgvzlteyntewmdawmdqucgljc2gubxlxy2xvdwquy29tl3nodwl5aw4uanbn%252fgravity%252fsoutheast&q-signature=26a429871963375c88081ef60247c5746e834a98&watermark/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn/gravity/southeast