tencent cloud

Feedback

Scaling

Last updated: 2024-02-18 10:36:35

    Feature Overview

    CI uses the imageMogr2 API to scale images. The input image cannot be larger than 32 MB, with its width and height not exceeding 30,000 pixels, and the total number of pixels not exceeding 250 million. The width and height of the output image cannot exceed 9,999 pixels. For an input animated image, the total number of pixels (Width x Height x Number of frames) cannot exceed 250 million pixels.
    An image can be processed:
    Upon download
    Upon upload
    In cloud

    API Format

    1. Processing upon download

    GET /<ObjectKey>?imageMogr2/thumbnail/<imageSizeAndOffsetGeometry> HTTP/1.1
    Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
    Date: <GMT Date>
    Authorization: <Auth String>

    2. Processing upon upload

    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/thumbnail/<imageSizeAndOffsetGeometry>"
    }]
    }
    Note:
    Pic-Operations is a JSON string. Its parameters are as described in Persistent Image Processing.

    3. Processing in-cloud data

    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/thumbnail/<imageSizeAndOffsetGeometry>"
    }]
    }

    Parameters

    Operation: thumbnail
    Parameter
    Description
    ObjectKey
    Object name, such as folder/sample.jpg.
    /thumbnail/!<Scale>p
    The percentage to scale the width and height of the input image
    /thumbnail/!<Scale>px
    The percentage to scale the width of the input image, without changing the height
    /thumbnail/!x<Scale>p
    The percentage to scale the height of the input image, without changing the width
    /thumbnail/<Width>x
    The width of the output image, with the height scaled automatically
    /thumbnail/x<Height>
    The height of the output image, with the width scaled automatically
    /thumbnail/<Width>x<Height>
    The maximum width and height of the thumbnail for scaling
    /thumbnail/<Width>x<Height>>
    Specifies the maximum width and height of a thumbnail as Width and Height respectively for proportional scaling down. The smaller value between the width scale ratio and height scale ratio will be used as the scale ratio. If both the output width and height are greater than the input width and height, the image will not be scaled.
    /thumbnail/<Width>x<Height><
    Specifies the maximum width and height of a thumbnail as Width and Height respectively for proportional scaling up. The smaller value between the width scale ratio and height scale ratio will be used as the scale ratio. If both the output width and height are less than the input width and height, the image will not be scaled.
    /thumbnail/!<Width>x<Height>r
    The minimum width and height of the thumbnail for scaling
    /thumbnail/<Width>x<Height>!
    The output width and height with the aspect ratio of the input image ignored. Note that the output image may be distorted.
    /thumbnail/<Area>@
    The maximum number of pixels of the output image
    /pad/
    Whether to pad the blank area with the color specified by color after the input image is scaled as large as possible in a rectangle with the specified width and height, with the image centered. Valid values: 0 (not to pad), 1 (to pad)
    /color/
    Fill color. The value must be in hexadecimal format, such as #FF0000. For format conversion, see RGB Color Codes Chart. The value must be URL-safe Base64-encoded as described in FAQs. Default value: #FFFFFF (white).
    /ignore-error/1
    If this parameter is carried and the image failed to be processed because the image size or the parameter value is too large, the input image will be returned with no error reported.

    Examples

    Note:
    Processing upon download is used as an example here, which does not store the output image in a bucket. If you need to store the output image, see Persistent Image Processing and use Processing upon upload or Processing in-cloud data.
    Input image:
    
    

    Example 1: scaling the width and height

    This example scales down the input image by 50% in width and height:
    http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?imageMogr2/thumbnail/!50p
    Output image:
    
    

    Example 2: scaling the width without changing the height

    This example scales down the width of the input image by 50% without changing its height:
    http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?imageMogr2/thumbnail/!50px
    Output image:
    
    

    Example 3: scaling in padding mode

    This example scales the input image as large as possible in a 600 x 600 rectangle and pads the blank area with a specified color:
    http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?imageMogr2/thumbnail/600x600/pad/1/color/IzNEM0QzRA
    Output image:
    
    

    Example 4: scaling in padding mode with a signature carried

    This example processes the image in the same way as in the example above except that a signature is carried. The signature is joined with other processing parameters using an ampersand (&).
    http://examples-1251000004.cos.ap-shanghai.myqcloud.com/sample.jpeg?q-sign-algorithm=<signature>&imageMogr2/thumbnail/!50px
    Note:
    You can obtain the value of <signature> by referring to Request Signature.

    Notes

    To prevent unauthorized users from accessing or downloading the input image by using a URL that does not contain any processing parameter, you can add the processing parameters to the request signature, making the processing parameters the key of the parameter with the value left empty. The following is a simple example for your reference (it might have expired or become inaccessible). For more information, see Upload via Pre-Signed URL.
    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