imageRepairProcess.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. require dirname(__FILE__, 2) . '/vendor/autoload.php';
  3. $secretId = "SECRETID"; //替换为用户的 secretId,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
  4. $secretKey = "SECRETKEY"; //替换为用户的 secretKey,请登录访问管理控制台进行查看和管理,https://console.cloud.tencent.com/cam/capi
  5. $region = "ap-beijing"; //替换为用户的 region,已创建桶归属的region可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
  6. $cosClient = new Qcloud\Cos\Client(
  7. array(
  8. 'region' => $region,
  9. 'scheme' => 'https', //协议头部,默认为http
  10. 'credentials'=> array(
  11. 'secretId' => $secretId,
  12. 'secretKey' => $secretKey)));
  13. try {
  14. // -------------------- 1. 下载时处理-原图存储在COS -------------------- //
  15. $object = 'xxx.jpg';
  16. $ciProcessParams = new Qcloud\Cos\ImageParamTemplate\CIProcessTransformation('ImageRepair');
  17. $ciProcessParams->addParam('MaskPic', 'https://www.xxx.com/xxx.jpg', true); // MaskPic/MaskPoly 二选一
  18. // $ciProcessParams->addParam('MaskPoly', '[[[200, 200], [400, 200], [400, 400], [200, 400]]]', true); // MaskPic/MaskPoly 二选一
  19. $query = $ciProcessParams->queryString();
  20. $downloadUrl = $cosClient->getObjectUrl('examplebucket-1250000000', $object); // 获取下载链接
  21. echo "{$downloadUrl}&{$query}"; // 携带签名的图片地址以“&”连接
  22. // -------------------- 1. 下载时处理-原图存储在COS -------------------- //
  23. // -------------------- 2. 下载时处理-原图来自其他链接 -------------------- //
  24. $ciProcessParams = new Qcloud\Cos\ImageParamTemplate\CIProcessTransformation('ImageRepair');
  25. $ciProcessParams->addParam('detect-url', 'https://www.xxx.com/xxx1.jpg');
  26. $ciProcessParams->addParam('MaskPic', 'https://www.xxx.com/xxx2.jpg', true); // MaskPic/MaskPoly 二选一
  27. // $ciProcessParams->addParam('MaskPoly', '[[[200, 200], [400, 200], [400, 400], [200, 400]]]', true); // MaskPic/MaskPoly 二选一
  28. $query = $ciProcessParams->queryString();
  29. $downloadUrl = $cosClient->getObjectUrl('examplebucket-1250000000', ''); // 获取下载链接
  30. echo "{$downloadUrl}&{$query}";
  31. // -------------------- 2. 下载时处理-原图来自其他链接 -------------------- //
  32. // --------------------- 3. 保存效果图到本地 ------------------------------ //
  33. $imageUrl = 'https://www.xxx.com/xxx.jpg';
  34. $result = $cosClient->imageRepairProcess(array(
  35. 'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
  36. 'Key' => 'test.jpg',
  37. 'ci-process' => 'ImageRepair',
  38. 'MaskPic' => base64_encode($imageUrl),
  39. // 'MaskPoly' => base64_encode('[[[200, 200], [400, 200], [400, 400], [200, 400]]]'),
  40. 'SaveAs' => '/tmp/imageRepair.jpg' // 本地保存路径
  41. ));
  42. // 请求成功
  43. print_r($result);
  44. // --------------------- 3. 保存效果图到本地 ------------------------------ //
  45. // --------------------- 4. 上传时处理 ------------------------------ //
  46. $ciProcessParams = new Qcloud\Cos\ImageParamTemplate\CIProcessTransformation('ImageRepair');
  47. $ciProcessParams->addParam('MaskPic', 'https://www.xxx.com/xxx.jpg', true); // MaskPic/MaskPoly 二选一
  48. // $ciProcessParams->addParam('MaskPoly', '[[[200, 200], [400, 200], [400, 400], [200, 400]]]', true); // MaskPic/MaskPoly 二选一
  49. $picOperations = new Qcloud\Cos\ImageParamTemplate\PicOperationsTransformation();
  50. $picOperations->setIsPicInfo(1); // is_pic_info
  51. $picOperations->addRule($ciProcessParams, 'output.jpg', 'examplebucket-1250000000'); // rules
  52. $result = $cosClient->putObject(array(
  53. 'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
  54. 'Key' => 'imageRepair.jpg',
  55. 'Body' => fopen('/tmp/imageRepair.jpg', 'rb'), // 本地文件
  56. 'PicOperations' => $picOperations->queryString(),
  57. ));
  58. // 请求成功
  59. print_r($result);
  60. // --------------------- 4. 上传时处理 ------------------------------ //
  61. // --------------------- 5. 云上数据处理 ------------------------------ //
  62. $ciProcessParams = new Qcloud\Cos\ImageParamTemplate\CIProcessTransformation('ImageRepair');
  63. $ciProcessParams->addParam('MaskPic', 'https://www.xxx.com/xxx.jpg', true); // MaskPic/MaskPoly 二选一
  64. // $ciProcessParams->addParam('MaskPoly', '[[[200, 200], [400, 200], [400, 400], [200, 400]]]', true); // MaskPic/MaskPoly 二选一
  65. $picOperations = new Qcloud\Cos\ImageParamTemplate\PicOperationsTransformation();
  66. $picOperations->setIsPicInfo(1); // is_pic_info
  67. $picOperations->addRule($ciProcessParams, 'output.jpg', 'examplebucket-1250000000'); // rules
  68. $result = $cosClient->ImageProcess(array(
  69. 'Bucket' => 'examplebucket-1250000000', //存储桶名称,由BucketName-Appid 组成,可以在COS控制台查看 https://console.cloud.tencent.com/cos5/bucket
  70. 'Key' => 'test.jpg',
  71. 'PicOperations' => $picOperations->queryString(),
  72. ));
  73. // 请求成功
  74. print_r($result);
  75. // --------------------- 5. 云上数据处理 ------------------------------ //
  76. } catch (\Exception $e) {
  77. // 请求失败
  78. echo($e);
  79. }