Blind Watermarking Type | Feature | Applicable Scenario |
Semi-blind watermarking (type 1) | Has strong anti-theft effects but requires the input image for watermark extraction | Images smaller than 640x640 |
Perfectly blind watermarking (type 2) | Is easy to extract and requires only the watermarked image for watermark extraction | Batch adding and verification |
Text blind watermarking (type 3) | Adds text to the image | Adding terminal information |
Pic-Operations to the request header and use blind watermarking parameters.PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations: <PicOperations>[Object Content]
Pic-Operations (a JSON string) to the request header. Its parameters are as follows:Parameter | Description | Type | Required |
is_pic_info | Whether to return the input image information 0 (default): no 1: yes | Int | No |
rules | Processing rules (up to five rules are supported). Each rule corresponds to one processing result. If this parameter is not specified, images will not be processed. | Array | No |
rules (a JSON array) are as follows:Parameter | Description | Type | Required |
bucket | Name of the destination bucket to store the results, formatted as BucketName-APPID. If this parameter is not specified, the results will be stored in the current bucket. | String | No |
fileid | Storage path and name of the output file. Naming rules are as follows (assume the input file is /p1/test1.jpg):1. A value starting with a slash (/) indicates an absolute path. For example, if fileid is set to /p2/test2.jpg, the test2.jpg file will be stored in the p2 folder. 2. A value not starting with a slash indicates a relative path. For example, if fileid is set to p2/test2.jpg, a folder named p2 will be created in the p1 folder, and the test2.jpg file will be stored in the p2 folder. 3. Note: Do not end the value with a slash; otherwise, an empty filename will be generated. | String | Yes |
rule | Processing parameters. For more information, see the image processing API. To process an image by using a specified style, the value must start with style/, with the style name followed. For example, if the style name is test, the value of rule should be style/test. | String | Yes |
watermark to rule as follows:watermark/3/type/<type>/image/<imageUrl>/text/<text>/level/<level>
Parameter | Description | Type | Required |
type | Blind watermarking type. Valid values: 1 (semi-blind watermarking), 2 (perfectly blind watermarking), 3 (text blind watermarking) | Int | Yes |
image | URL of the blind image watermark, which must be URL-safe Base64 encoded. This parameter is required if type is set to 1 or 2, and does not take effect if type is set to 3. The image watermark must:1. Be stored in the same bucket as the input image. 2. Have a URL that starts with http://. Note that "http://" cannot be omitted or changed to "https://". For example, the following watermark URLs are invalid: examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.pnghttps://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png | String | No |
text | Text watermark, which must be URL-safe Base64-encoded. This parameter is required if type is set to 3 and does not take effect if type is set to 1 or 2. | String | No |
level | Perfectly blind watermarking level, which only takes effect when type is set to 2. Valid values: 1 (default), 2, 3. The larger the value, the better the watermarking effects. | Int | No |
Parameter | Description | Type |
UploadResult | Upload results | Container |
UploadResult: Parameter | Description | Type |
OriginalInfo | Information about the input image | Container |
ProcessResults | Processing results | Container |
OriginalInfo:Parameter | Description | Type |
Key | Name of the input image | String |
Location | Image location | String |
ImageInfo | Information about the input image | Container |
ImageInfo:Parameter | Description | Type |
Format | Image format | String |
Width | Image width | Int |
Height | Image height | Int |
Quality | Image quality | Int |
Ave | Image average hue | String |
Orientation | Image rotation angle | Int |
ProcessResults:Parameter | Description | Type |
Object | Processing results of each image | Container |
Object:Parameter | Description | Type |
Key | Filename | String |
Location | Image location | String |
Format | Image format | String |
Width | Image width | Int |
Height | Image height | Int |
Size | Image size | Int |
Quality | Image quality | Int |
PUT /exampleobject HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Tue, 03 Apr 2018 09:06:15 GMTAuthorization:XXXXXXXXXXXXPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn"}]}Content-Length: 64[Object Content]
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 03 Apr 2018 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****<UploadResult><OriginalInfo><Key>exampleobject</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</Location><ImageInfo><Format>JPEG</Format><Width>640</Width><Height>427</Height><Quality>100</Quality><Ave>0xa18454</Ave><Orientation>1</Orientation></ImageInfo></OriginalInfo><ProcessResults><Object><Key>exampleobject</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</Location><Format>png</Format><Width>640</Width><Height>427</Height><Size>463092</Size><Quality>100</Quality></Object></ProcessResults></UploadResult>
imageUrl in rule in the request header Pic-Operations is the URL of the image watermark.Location in ProcessResults in the response body is the URL of the image with a blind watermark.watermark parameter after the image URL.GET /<ObjectKey>?watermark/3/type/<type>/image/<imageUrl>/text/<text> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: <GMT Date>Authorization: <Auth String>
Parameter | Description | Type | Required |
ObjectKey | Object name, such as folder/sample.jpg. | String | Yes |
type | Blind watermarking type. Valid values: 1 (semi-blind watermarking), 2 (perfectly blind watermarking), 3 (text blind watermarking) | Int | Yes |
image | URL of the blind image watermark, which must be URL-safe Base64 encoded. This parameter is required if type is set to 1 or 2, and does not take effect if type is set to 3. The image watermark must:1. Be stored in the same bucket as the input image. 2. Have a URL that starts with http://. Note that "http://" cannot be omitted or changed to "https://". For example, the following watermark URLs are invalid: examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.pnghttps://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png | String | No |
text | Text watermark, which must be URL-safe Base64-encoded. This parameter is required if type is set to 3 and does not take effect if type is set to 1 or 2. | String | No |
level | Perfectly blind watermarking level, which only takes effect when type is set to 2. Valid values: 1 (default), 2, 3. The larger the value, the better the watermarking effects. | Int | No |
https://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/sample.jpeg?watermark/3/type/3/text/dGVuY2VudCBjbG91ZA==
POST /<ObjectKey>?image_process HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization: Auth StringPic-Operations: <PicOperations>
Pic-Operations (a JSON string) to the request header. Its parameters are as follows:Parameter | Description | Type | Required |
is_pic_info | Whether to return the input image information 0 (default): no 1: yes | Int | No |
rules | Processing rules (up to five rules are supported). Each rule corresponds to one processing result. If this parameter is not specified, images will not be processed. | Array | No |
rules (a JSON array) are as follows:Parameter | Description | Type | Required |
bucket | Name of the destination bucket to store the results, formatted as BucketName-APPID. If this parameter is not specified, the results will be stored in the current bucket. | String | No |
fileid | Storage path and name of the output file. Naming rules are as follows (assume the input file is /p1/test1.jpg):1. A value starting with a slash (/) indicates an absolute path. For example, if fileid is set to /p2/test2.jpg, the test2.jpg file will be stored in the p2 folder. 2. A value not starting with a slash indicates a relative path. For example, if fileid is set to p2/test2.jpg, a folder named p2 will be created in the p1 folder, and the test2.jpg file will be stored in the p2 folder. 3. Note: Do not end the value with a slash; otherwise, an empty filename will be generated. | String | Yes |
rule | Processing parameters. For more information, see the image processing API. To process an image by using a specified style, the value must start with style/, with the style name followed. For example, if the style name is test, the value of rule should be style/test. | String | Yes |
watermark to rule as follows:watermark/3/type/<type>/image/<imageUrl>/text/<text>/level/<level>
Parameter | Description | Type | Required |
type | Blind watermarking type. Valid values: 1 (semi-blind watermarking), 2 (perfectly blind watermarking), 3 (text blind watermarking) | Int | Yes |
image | URL of the blind image watermark, which must be URL-safe Base64-encoded. This parameter is required if type is set to 1 or 2, and does not take effect if type is set to 3. The image watermark must:1. Be stored in the same bucket as the input image. 2. Have a URL that starts with http://. Note that "http://" cannot be omitted or changed to "https://". For example, the following watermark URLs are invalid: examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.pnghttps://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png | String | No |
text | Text watermark, which must be URL-safe Base64-encoded. This parameter is required if type is set to 3 and does not take effect if type is set to 1 or 2. | String | No |
level | Perfectly blind watermarking level, which only takes effect when type is set to 2. Valid values: 1 (default), 2, 3. The larger the value, the better the watermarking effects. | Int | No |
Parameter | Description | Type |
UploadResult | Upload results | Container |
UploadResult: Parameter | Description | Type |
OriginalInfo | Information about the input image | Container |
ProcessResults | Processing results | Container |
OriginalInfo: Parameter | Description | Type |
Key | Name of the input image | String |
location | Location of the input image | String |
ImageInfo | Information about the input image | Container |
ImageInfo: Parameter | Description | Type |
Format | Image format | String |
Width | Image width | Int |
Height | Image height | Int |
Quality | Image quality | Int |
Ave | Image average hue | String |
Orientation | Image rotation angle | Int |
ProcessResults:Parameter | Description | Type |
Object | Processing results of each image | Container |
Object:Parameter | Description | Type |
Key | Filename | String |
location | Location of the input image | String |
Format | Image format | String |
Width | Image width | Int |
Height | Image height | Int |
Size | Image size | Int |
Quality | Image quality | Int |
POST /exampleobject?image_process HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Tue, 03 Apr 2018 09:06:15 GMTAuthorization:XXXXXXXXXXXXPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject","rule": "watermark/3/type/1/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL3NodWl5aW4uanBn"}]}Content-Length: 64
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 03 Apr 2018 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****<UploadResult><OriginalInfo><Key>exampleobject</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</Location><ImageInfo><Format>JPEG</Format><Width>640</Width><Height>427</Height><Quality>100</Quality><Ave>0xa18454</Ave><Orientation>1</Orientation></ImageInfo></OriginalInfo><ProcessResults><Object><Key>exampleobject</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject</Location><Format>png</Format><Width>640</Width><Height>427</Height><Size>463092</Size><Quality>100</Quality></Object></ProcessResults></UploadResult>
Pic-Operations to the request header and use the watermark extraction parameter watermark/4.PUT /<ObjectKey> HTTP/1.1Host: <BucketName-APPID>.cos.<Region>.myqcloud.comDate: GMT DateAuthorization:XXXXXXXXXXXXPic-Operations: <PicOperations>[Object Content]
Pic-Operations (a JSON string) to the request header. Its parameters are as follows:Parameter | Description | Type | Required |
is_pic_info | Whether to return the input image information 0 (default): no 1: yes | Int | No |
rules | Processing rules (up to five rules are supported). Each rule corresponds to one processing result. If this parameter is not specified, images will not be processed. | Array | No |
rules (a JSON array) are as follows:Parameter | Description | Type | Required |
bucket | Name of the destination bucket to store the results, formatted as BucketName-APPID. If this parameter is not specified, the results will be stored in the current bucket. | String | No |
fileid | Storage path and name of the output file. Naming rules are as follows (assume the input file is /p1/test1.jpg):1. A value starting with a slash (/) indicates an absolute path. For example, if fileid is set to /p2/test2.jpg, the test2.jpg file will be stored in the p2 folder. 2. A value not starting with a slash indicates a relative path. For example, if fileid is set to p2/test2.jpg, a folder named p2 will be created in the p1 folder, and the test2.jpg file will be stored in the p2 folder. 3. Note: Do not end the value with a slash; otherwise, an empty filename will be generated. | String | Yes |
rule | Processing parameters. For more information, see the image processing API. To process an image by using a specified style, the value must start with style/, with the style name followed. For example, if the style name is test, the value of rule should be style/test. | String | Yes |
watermark parameter to rule as follows:watermark/4/type/<type>/image/<imageUrl>
Parameter | Description | Type | Required |
type | Blind watermarking type. Valid values: 1 (semi-blind watermarking), 2 (perfectly blind watermarking), 3 (text blind watermarking). The value must be the same as that used when the blind watermark was added. | Int | Yes |
image | Image URL, which should be specified according to the value of type. If the value of type is: 1, image is required and is the URL of the input image. 2, image is required and is the URL of the image watermark. 3, image does not need to be specified and will not take effect. The value of image must be URL-safe Base64-encoded, and the image must: 1. Be stored in the same bucket as the image with the blind watermark. 2. Have a URL that starts with http://. Note that "http://" cannot be omitted or changed to "https://". For example, the following watermark URLs are invalid: examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.pnghttps://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/watermark.png | String | No |
WatermarkStatus will be added to the UploadResult.ProcessResults.Object node only if type is set to 2 in the request body of the blind watermark extraction request.Parameter | Parent Node | Description | Type |
WatermarkStatus | Object | This parameter is returned if type is set to 2 to indicate the confidence of the watermark extracted. Value range: 0–100. If the value is greater than 75, there is a blind watermark. If the value falls in the range of 60−75, there is a suspected blind watermark. If the value is smaller than 60, no blind watermark is extracted. | Int |
PUT /exampleobject1 HTTP/1.1Host: examplebucket-1250000000.cos.ap-chengdu.myqcloud.comDate: Tue, 03 Apr 2018 09:06:15 GMTAuthorization:XXXXXXXXXXXXPic-Operations:{"is_pic_info": 1,"rules": [{"fileid": "exampleobject2","rule": "watermark/4/type/2/image/aHR0cDovL2V4YW1wbGVzLTEyNTEwMDAwMDQucGljc2gubXlxY2xvdWQuY29tL2ZpbGVuYW1lLmpwZWc="}]}Content-Length: 64[Object Content]
HTTP/1.1 200 OKContent-Type: application/xmlContent-Length: 645Date: Tue, 03 Apr 2018 09:06:16 GMTStatus: 200 OKx-cos-request-id: NWFjMzQ0MDZfOTBmYTUwXzZkZV8z****<UploadResult><OriginalInfo><Key>exampleobject1</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject1</Location><ImageInfo><Format>JPEG</Format><Width>640</Width><Height>427</Height><Quality>100</Quality><Ave>0xa18454</Ave><Orientation>1</Orientation><FrameCount>1</FrameCount></ImageInfo></OriginalInfo><ProcessResults><Object><Key>exampleobject2</Key><Location>examplebucket-1250000000.cos.ap-chengdu.myqcloud.com/exampleobject2</Location><Format>png</Format><Width>640</Width><Height>427</Height><Size>463092</Size><Quality>100</Quality><FrameCount>1</FrameCount><WatermarkStatus>86</WatermarkStatus></Object></ProcessResults></UploadResult>
type is set to 1 in the request, imageUrl in rule in Pic-Operations is the URL of the input image without a blind watermark added. If type is set to 2 in the request, imageUrl is the URL of the image watermark.url in ProcessResults in the response body is the URL of the image watermark extracted.Pic-Operations to the request header and use the watermark extraction parameter watermark/4.Feedback