Image compression is the process of downsizing an image as much as possible without sacrificing quality so that it can be stored at a lower cost and accessed more quickly.
COS launched the TPG compression feature based on CI to convert images into TPG format, a Tencent-developed format with animated image support. Currently, products such as QQ Browser and Qzone have TPG support by default. TPG offers over 90% smaller file sizes at the same quality compared with GIF, and over 50% smaller file sizes compared with PNG.
COS uses the imageMogr2 API of CI to provide the TPG compression feature.
An image can be processed:
Note:TPG Compression is charged by CI at image advanced compression rates. For detailed pricing, see Image Processing Fees.
GET /<ObjectKey>?imageMogr2/format/tpg HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: <GMT Date>
Authorization: <Auth String>
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/tpg"
}]
}
Note:
Pic-Operations
is a JSON string. Its parameters are as described in Persistent Image Processing.
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/tpg"
}]
}
Note:
- Authorization: Auth String (see Request Signature for more information)
- When this feature is used by a sub-account, relevant permissions must be granted as instructed in Authorization Granularity Details.
Parameter | Description |
---|---|
download_url | URL of the input image, formatted as <BucketName-APPID>.cos.<Region>.myqcloud.com/<picture name> Example: examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/picture.jpeg |
/format/<Format> | Compression format, which is tpg |
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, use Processing upon upload or Processing in-cloud data instead.
Assume that the input image is a 1,335.2 KB image in PNG format, as shown below:
You can convert the image into TPG format by using the following URL:
http://example-1258125638.cos.ap-shanghai.myqcloud.com/sample.png?imageMogr2/format/tpg
Compression ratio comparison
Format | Image Size |
---|---|
PNG (input image) | 1,335.2 KB |
TPG | 36.67 KB (compression ratio: 97.3%) |
Was this page helpful?