tencent cloud

文档反馈

盲水印

最后更新时间:2022-04-06 16:53:38

    简介

    本文档提供关于盲水印的相关的 API 概览以及 SDK 示例代码。

    API 操作描述
    盲水印 对本地图片添加或提取盲水印并上传至存储桶

    添加盲水印

    上传时添加

    指定的水印图片必须同时满足如下3个条件:

    1. 水印图片与源图片必须位于同一个存储桶下。
    2. URL 需使用 COS 域名(不能使用 CDN 加速域名,例如 examplebucket-1250000000.file.myqcloud.com/shuiyin_2.png 不可用),且需保证水印图可访问。如果水印图读取权限为私有,则需要携带有效签名。
    3. URL 必须以http://开始,不能省略 HTTP 头,也不能填 HTTPS 头,例如 examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/shuiyin_2.pnghttps://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/shuiyin_2.png 为非法的水印 URL。

    示例代码

    <?php
    require dirname(__FILE__) . '/../vendor/autoload.php';
    $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.intl.cloud.tencent.com/cam/capi
    $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.intl.cloud.tencent.com/cam/capi
    $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.intl.cloud.tencent.com/cos5/bucket
    $cosClient = new Qcloud\Cos\Client(
       array(
           'region' => $region,
           'schema' => 'https', //协议头部,默认为http
           'credentials'=> array(
               'secretId'  => $secretId ,
               'secretKey' => $secretKey)));
    try {
           $blindWatermarkTemplate = new Qcloud\Cos\ImageParamTemplate\BlindWatermarkTemplate();//创建盲水印参数模版实例
           $blindWatermarkTemplate->setType(3);//盲水印类型,有效值:1 半盲;2 全盲;3 文字
           $blindWatermarkTemplate->setImage("imageUrl");//设置盲水印图片地址
           $blindWatermarkTemplate->setText("Test");//设置盲水印文字
           $blindWatermarkTemplate->setLevel(3);//只对全盲水印(type=2)有效。level 的取值范围为{1,2,3},默认值为1,level 值越大则图片受影响程度越大、盲水印效果越好。
           $picOperationsTemplate = new \Qcloud\Cos\ImageParamTemplate\PicOperationsTransformation();//创建图片持久化处理参数模版实例
           $picOperationsTemplate->setIsPicInfo(1);//设置是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0
           $picOperationsTemplate->addRule($blindWatermarkTemplate, "resultobject");//设置图片持久化处理参数
           $result = $cosClient->putObject(array(
           'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.intl.cloud.tencent.com/cos5/bucket
           'Key' => 'exampleobject',
           'Body' => fopen('path/to/localFile', 'rb'), 
           'PicOperations' => $picOperationsTemplate->queryString(),//生成图片持久化处理参数
       ));
       // 请求成功
       print_r($result);
    } catch (\Exception $e) {
       // 请求失败
       echo($e);
    }
    

    参数说明

    参数名称 类型 描述 是否必填
    Bucket String 存储桶名称,格式:BucketName-APPID
    Key String 此处的 Key 为对象键,对象键是对象在存储桶中的唯一标识。例如,在对象的访问域名examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为doc/pic.jpg
    Body File/String 上传的内容
    PicOperations Json/String 图片持久化处理信息

    返回结果示例

    Guzzle\Service\Resource\Model Object
    (
      [structure:protected] => 
      [data:protected] => Array
      (
              [Body] =>
              [ETag] => "698d51a19d8a121ce581499d7b701668"
              [RequestId] => NWQwOGRkNDdfMjJiMjU4NjRfNzVjXzEwNmVjY2M=
              [ContentLength] => 10000
              [Key] => exampleobject
              [Bucket] => examplebucket-1250000000
              [Location] => examplebucket-1250000000.cos.ap-beijing.myqcloud.com/exampleobject
              [Data] => Array
              (
                  [OriginalInfo] => Array
                  (
                      [Key] => exampleobject
                      [Location] => examplebucket-1250000000.cos.ap-beijing.myqcloud.com/exampleobject
                      [ETag] => "7037fb6fb4cca43b958a28789605e73d98088720"
                      [ImageInfo] => Array
                      (
                              [Format] => JPEG
                              [Width] => 600
                              [Height] => 500
                              [Quality] => 90
                              [Ave] => 0x46442e
                              [Orientation] => 0
                       )
                   )
                  [ProcessResults] => Array
                  (
                      [Object] => Array
                      (
                          [0] => Array(
                              [Key] => resultobject
                              [Location] => examplebucket-1250000000.cos.ap-beijing.myqcloud.com/resultobject
                              [Format] => JPEG
                              [Width] => 300
                              [Height] => 200
                              [Size] => 30000
                              [Quality] => 90
                              [ETag] => "87c153bc2909aa0ba111ca126b675c510d36b817"
                          )
                      )
                  )
              )
      )
    )
    

    返回结果说明

    参数名称 类型 描述 父节点
    Body File/String 返回体
    ETag String 文件的 MD5 值
    RequestId String 请求 ID 标识
    ContentLength Int 响应体长度
    Key String 对象键
    Bucket String 存储桶名称,格式:BucketName-APPID
    Location String 请求资源地址
    Data Array 图片处理结果信息

    下载时添加

    指定的水印图片必须同时满足如下3个条件:

    1. 水印图片与源图片必须位于同一个存储桶下。
    2. URL 需使用 COS 域名(不能使用 CDN 加速域名,例如 examplebucket-1250000000.file.myqcloud.com/shuiyin_2.png 不可用),且需保证水印图可访问。如果水印图读取权限为私有,则需要携带有效签名。
    3. URL 必须以http://开始,不能省略 HTTP 头,也不能填 HTTPS 头,例如 examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/shuiyin_2.pnghttps://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/shuiyin_2.png 为非法的水印 URL。

    示例代码

    <?php
    require dirname(__FILE__) . '/../vendor/autoload.php';
    $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.intl.cloud.tencent.com/cam/capi
    $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.intl.cloud.tencent.com/cam/capi
    $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.intl.cloud.tencent.com/cos5/bucket
    $cosClient = new Qcloud\Cos\Client(
       array(
           'region' => $region,
           'schema' => 'https', //协议头部,默认为http
           'credentials'=> array(
               'secretId'  => $secretId ,
               'secretKey' => $secretKey)));
    try {
           $blindWatermarkTemplate = new Qcloud\Cos\ImageParamTemplate\BlindWatermarkTemplate();//创建盲水印参数模版实例
           $blindWatermarkTemplate->setType(3);//盲水印类型,有效值:1 半盲;2 全盲;3 文字
           $blindWatermarkTemplate->setImage("imageUrl");//设置盲水印图片地址
           $blindWatermarkTemplate->setText("Test");//设置盲水印文字
           $blindWatermarkTemplate->setLevel(3);//只对全盲水印(type=2)有效。level 的取值范围为{1,2,3},默认值为1,
           $result = $cosClient->getObject(array(
           'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.intl.cloud.tencent.com/cos5/bucket
           'Key' => 'exampleobject',
           'ImageHandleParam' => $blindWatermarkTemplate->queryString(),//生成盲水印参数
       ));
       // 请求成功
       print_r($result);
    } catch (\Exception $e) {
       // 请求失败
       echo($e);
    }
    

    参数说明

    参数名称 类型 描述 是否必填
    Bucket String 存储桶名称,格式:BucketName-APPID
    Key String 此处的 Key 为对象键,对象键是对象在存储桶中的唯一标识。例如,在对象的访问域名examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为doc/pic.jpg
    ImageHandleParam String 盲水印参数

    返回结果示例

    Guzzle\Service\Resource\Model Object
    (
      [structure:protected] => 
      [data:protected] => Array
          (
              [Body] => 
              [RequestId] => NWQwOGRkNDdfMjJiMjU4NjRfNzVjXzEwNmVjY2M=
              [ContentLength] => 100
              [CacheControl] => max-age=2592000
              [ContentType] => image/jpeg
              [Key] => exampleobject
              [Bucket] => examplebucket-1250000000
              [Location] => examplebucket-1250000000.cos.ap-beijing.myqcloud.com/exampleobject
          )
    )
    

    返回结果说明

    参数名称 类型 描述 父节点
    Body File/String 下载内容
    RequestId String 请求 ID 标识
    CacheControl String 缓存策略,设置 Cache-Control
    ContentType String 内容类型,设置 Content-Type
    ContentLength Int 响应体长度
    Key String 对象键
    Bucket String 存储桶名称,格式:BucketName-APPID
    Location String 请求资源地址

    提取盲水印

    图片地址,根据盲水印类型填写:
    1.当半盲类型时,则盲水印图片地址必填,且为原图图片地址。
    2.当全盲类型时,则盲水印图片地址必填,且为水印图地址。
    3.当文字类型时,则盲水印图片地址无需填写(无效)。

    指定的水印图片必须同时满足如下3个条件:

    1. 水印图片与源图片必须位于同一个存储桶下。
    2. URL 需使用 COS 域名(不能使用 CDN 加速域名,例如 examplebucket-1250000000.file.myqcloud.com/shuiyin_2.png 不可用),且需保证水印图可访问。如果水印图读取权限为私有,则需要携带有效签名。
    3. URL 必须以http://开始,不能省略 HTTP 头,也不能填 HTTPS 头,例如 examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/shuiyin_2.pnghttps://examplebucket-1250000000.cos.ap-shanghai.myqcloud.com/shuiyin_2.png 为非法的水印 URL。

    示例代码

    <?php
    require dirname(__FILE__) . '/../vendor/autoload.php';
    $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.intl.cloud.tencent.com/cam/capi
    $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.intl.cloud.tencent.com/cam/capi
    $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.intl.cloud.tencent.com/cos5/bucket
    $cosClient = new Qcloud\Cos\Client(
      array(
          'region' => $region,
          'schema' => 'https', //协议头部,默认为http
          'credentials'=> array(
              'secretId'  => $secretId ,
              'secretKey' => $secretKey)));
              
    try {
          $blindWatermarkTemplate = new Qcloud\Cos\ImageParamTemplate\BlindWatermarkTemplate();//创建盲水印参数模版实例
          $blindWatermarkTemplate->setPick();//设置为提取盲水印
          $blindWatermarkTemplate->setType(3);//盲水印类型,有效值:1 半盲;2 全盲;3 文字
          $blindWatermarkTemplate->setImage("imageUrl");//设置盲水印图片地址
          $blindWatermarkTemplate->setText("Test");//设置盲水印文字
          $blindWatermarkTemplate->setLevel(3);//只对全盲水印(type=2)有效。level 的取值范围为{1,2,3},默认值为1,level 值越大则图片受影响程度越大、盲水印效果越好。
          $picOperationsTemplate = new \Qcloud\Cos\ImageParamTemplate\PicOperationsTransformation();//创建图片持久化处理参数模版实例
          $picOperationsTemplate->setIsPicInfo(1);//设置是否返回原图信息,0不返回原图信息,1返回原图信息,默认为0
          $picOperationsTemplate->addRule($blindWatermarkTemplate, "resultobject");//设置图片持久化处理参数
          $result = $cosClient->putObject(array(
          'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.intl.cloud.tencent.com/cos5/bucket
          'Key' => 'exampleobject',
          'Body' => fopen('path/to/localFile', 'rb'), 
          'PicOperations' => $picOperationsTemplate->queryString(),//生成图片持久化处理参数
      ));
      // 请求成功
      print_r($result);
    } catch (\Exception $e) {
      // 请求失败
      echo($e);
    }
    

    参数说明

    参数名称 类型 描述 是否必填
    Bucket String 存储桶名称,格式:BucketName-APPID
    Key String 此处的 Key 为对象键,对象键是对象在存储桶中的唯一标识。例如,在对象的访问域名examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com/doc/pic.jpg 中,对象键为doc/pic.jpg
    Body File/String 上传的内容
    PicOperations Json/String 图片持久化处理信息

    返回结果示例

    Guzzle\Service\Resource\Model Object
    (
      [structure:protected] => 
      [data:protected] => Array
      (
              [Body] =>
              [ETag] => "698d51a19d8a121ce581499d7b701668"
              [RequestId] => NWQwOGRkNDdfMjJiMjU4NjRfNzVjXzEwNmVjY2M=
              [ContentLength] => 10000
              [Key] => exampleobject
              [Bucket] => examplebucket-1250000000
              [Location] => examplebucket-1250000000.cos.ap-beijing.myqcloud.com/exampleobject
              [Data] => Array
              (
                  [OriginalInfo] => Array
                  (
                      [Key] => exampleobject
                      [Location] => examplebucket-1250000000.cos.ap-beijing.myqcloud.com/exampleobject
                      [ETag] => "7037fb6fb4cca43b958a28789605e73d98088720"
                      [ImageInfo] => Array
                      (
                              [Format] => JPEG
                              [Width] => 600
                              [Height] => 500
                              [Quality] => 90
                              [Ave] => 0x46442e
                              [Orientation] => 0
                       )
                   )
                  [ProcessResults] => Array
                  (
                      [Object] => Array
                      (
                          [0] => Array(
                              [Key] => resultobject
                              [Location] => examplebucket-1250000000.cos.ap-beijing.myqcloud.com/resultobject
                              [Format] => JPEG
                              [Width] => 300
                              [Height] => 200
                              [Size] => 30000
                              [Quality] => 90
                              [WatermarkStatus] => 90
                              [ETag] => "87c153bc2909aa0ba111ca126b675c510d36b817"
                          )
                      )
                  )
              )
      )
    )
    

    返回结果说明

    参数名称 类型 描述 父节点
    Body File/String 返回体
    ETag String 文件的 MD5 值
    RequestId String 请求 ID 标识
    ContentLength Int 响应体长度
    Key String 对象键
    Bucket String 存储桶名称,格式:BucketName-APPID
    Location String 请求资源地址
    Data Array 图片处理结果信息
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持