3步搞定图像盲水印?试试云开发扩展能力

你以为云开发还只能在微信小程序中使用?那你可能就OUT啦!

你以为云开发只有基础服务?那你可能就OUT啦!

云开发不仅支持多端(微信小程序、Web应用、APP应用、QQ小程序),更提供丰富的扩展能力!

现在,基于云开发,你不再需要进行复杂的配置和调试,可以高效地调用腾讯云上的其他服务和资源!

有什么样的愿望,就有什么样的能力,云开发扩展能力正式发布!!!

云开发(CloudBase)是一款云端一体化的产品方案 ,采用?serverless 架构,免环境搭建等运维事务 ,支持一云多端,助力快速构建小程序、Web应用、移动应用。

为什么用?——省事

举个例子:

以调用图像处理为例,腾讯云图像处理能力为开发者提供智能裁剪、无损压缩、格式转换等功能。

在现有模式下,如果希望调用腾讯云数据万象的图像处理能力,你需要创建COS桶、购买云主机、完成环境搭建、获取访问密钥、再引入COS SDK。但是这些做完,还不能调用SDK!你还需要搭建权限系统!

而基于云开发,上面的步骤都不需要,只需在腾讯云云开发控制台“一键安装”,就可以调用图像处理能力!

?

现在有哪些扩展能力?

开发者使用云存储一半以上都在进行图像的存储,但很多时候在不同的应用场景对同一张图像有不同的要求(如尺寸、图像质量、图像格式、图像水印等),线下手动处理图像耗时久,不能满足业务多样化的需要。还是本着为大家“更省事地开发应用”出发,云开发第一期扩展能力,优先推出一系列丰富的图像处理能力。

图像处理 图像处理提供多种图像处理功能,包含智能裁剪、无损压缩、水印、格式转换等,您可通过扩展 SDK 轻松管理文件。
图像安全审核 图像安全审核提供鉴黄、鉴政、鉴暴恐等多种类型的敏感内容审核服务,有效识别违禁图片,规避违规风险。
图像盲水印 盲水印功能将水印图以不可见的形式添加到原图信息中,不会对原图质量产生太大影响。在图片被盗取后,您可对疑似被盗取的资源进行盲水印提取,验证图片归属。
图像标签 图标标签对云存储中存量数据的图片标签识别,返回图片中置信度较高的主题标签,帮忙开发者分析图像。

贵吗?—— 免费额度了解一下

图像扩展能力免费额度

图像处理 10TB/月
图像安全审核 2000张/日
图像盲水印 3000次/月

云开发免费额度

?

怎么用?

在图像处理场景下,开发者有两种方式进行相关的图像处理操作:

通过添加URL参数进行基础图像处理(如智能裁剪、无损压缩、水印、格式转换等):开发者只需要在访问地址后添加处理规则即可获取到处理结果。

通过调用SDK进行高阶图像处理(如图像安全审核、图像盲水印等):云开发提供了云端和客户端SDK支持,文件读写权限策略与云存储一致,减去开发者额外的权限管理工作。

云开发图像处理扩展能力 Quick Start

接下来以调用图像盲水印为例,教大家如何快速使用云开发扩展能力。

效果展示

1. 素材准备

?

2. 添加水印

添加水印后图像,图3。由图3可以看到,添加水印后,原图外观不受影响。

?

3. 提取水印验证

当我们从上面图3提取水印图时,提取的水印结果图为图4。不难发现,提取出来的结果图与水印图基本相同,可以用来进行版权归属验证。

?

如果截取图3一部分,如图5,提取水印得到图6,水印依旧可以清晰辨认,方便进行版权保护。

?

实战操作

1. 安装扩展

  1. 打开云开发扩展控制台

?

  1. 选择希望安装的扩展进行安装

?

2. 安装扩展 SDK 到项目

npm install --save @cloudbase/[email protected]

3.? 调用扩展 SDK

开发者可是具体情况,选择在客户端中使用,或在云函数中使用扩展能力。

客户端使用:

const extCi = require("@cloudbase/extension-ci");const tcb = require("tcb-js-sdk");const readFile = async function(file) {  let reader = new FileReader();  let res = await new Promise(resolve => {    reader.onload = function(e) {      let arrayBuffer = new Uint8Array(e.target.result);      resolve(arrayBuffer);    };    reader.readAsArrayBuffer(file);  });  return res;};let file = document.getElementById("selectFile").files[0];let?fileContent?=?await?readFile(file);

云函数中使用:

const extCi = require("@cloudbase/extension-ci");const tcb = require("tcb-admin-node");let?fileContent?=?imageBuffer;?//?Uint8Array|Buffer格式图像内容

代码示例:

tcb.init({  env: "您的环境ID"});tcb.registerExtension(extCi);
async function addWaterMark() {  try {    const opts = {      rules:      [        {          fileid: "/watermark/demo_image2.jpeg",          rule: { // 添加水印处理规则            mode: 3,            type: 2,            image: ‘mark.jpeg‘ // 黑底白色图片,不超过原图的1/8          }        }      ]    }    const res = await tcb.invokeExtension("CloudInfinite", {      action:‘WaterMark‘,      cloudPath: "demo.jpeg", // 存储图像的绝对路径,与tcb.uploadFile中一致      fileContent, // 该字段可选,文件内容:Uint8Array|Buffer。有值,表示上传时处理图像;为空,则处理已经上传的图像      operations:opts    });    console.log(JSON.stringify(res.data, null, 4));  } catch (err) {    console.log(JSON.stringify(err, null, 4));  }}
async function getWaterMark() {  try {    const opts = {rules: [      {        fileid: "/watermark/demo_image2_mark.jpeg", // 结果图像        rule: { // 提取水印处理规则          mode: 4,          type: 2,          image: ‘/mark.jpeg‘        }      }    ]}    const res = await tcb.invokeExtension("CloudInfinite", {      action:‘WaterMark‘,      cloudPath: "watermark/demo_image2.jpeg", // 目标图像      operations:opts    });    console.log(JSON.stringify(res.data, null, 4));  } catch (err) {    console.log(JSON.stringify(err, null, 4));  }}

展望

云开发扩展能力在不断完善和支持中,后面会集成更多的能力,比如:短信服务、人脸核身等,让开发者便捷的使用云上资源。

未来我们会开放扩展能力平台,使开发者基于云上资源开发完成的云端应用也可以在扩展平台分享和发布,让开发者的创意及成果触达到更多的人,发挥更大的价值。

?

技术文档:https://www.cloudbase.net/

微信搜索:腾讯云云开发,获取项目最新进展

原文地址:https://www.cnblogs.com/CloudBase/p/12617861.html

时间: 2024-11-09 01:30:02

3步搞定图像盲水印?试试云开发扩展能力的相关文章

redha7.2配置静态网卡(三步搞定)

三步搞定: 编辑网卡配置文件:vi /etc/sysconfig/network-scripts/ifcfg-eno16777736(也可能是eth0或eth1或者eth+任何数字) 当前是DHCP,如果要使用静态IP修改: BOOTPROTO=static                #声明IP地址获得的途径 ONBOOT=yes                          #开启自动启用网络连接 增加: IPADDR=192.168.1.1              #设置IP地址(

SmaterWeatherApi---签名加密和数据访问--简单粗暴一步搞定

使用中国天气网接口的朋友们,大家(还有我)辛苦了 有兴趣的可以去了解一下http://smart.weather.com.cn/wzfw/smart/weatherapi.shtml 年初的时候停用了之前的接口,改为申请使用,于是发个了申请邮件,中间各种曲折...一万字.. 总算是申请下来了,不过接口文档啊,看的我累觉不爱,文档上只有php版的kay生成方法,我在androi上使用,那些加密方法不知道用java如何实现 一怒之下,就写个php版的吧,本来是只想写个生成key的接口的,后来想了想

iOS开发三步搞定百度推送

iOS开发三步搞定百度推送 百度推送很简单,准备工作:在百度云推送平台注册应用,上传证书. 步骤一: 百度云推送平台 http://push.baidu.com/sdk/push_client_sdk_for_ios  在这里下载iOS端SDK包,如下图: 把SDK包里面的下图文件夹拖到你的工程中,如下图,第一步就这么简单. 步骤二: 在工程中AppDelegate.m中的- (BOOL)application:(UIApplication *)application didFinishLaun

10步搞定App内测发布(蒲公英内测平台)

10步搞定App内测发布(蒲公英内测平台) (写作不易,转载请注明出处,谢谢!) App内测是必不可少的一个环节,重中之重! 有两种方法:一.把每台手机的插到开发人员的电脑上跑一边(不推荐):二.通过第三方分发平台(推荐),可以把自己的App发布到第三方的平台上,供内部员工下载,就不需要每台机子都到开发人员的电脑上跑一遍! 现在博主(最近看博客,博主都这样称呼自己)就来谈谈第二种方式,平台使用蒲公英平台: 1.开发者账号,Must: 2.要测试的iPhone.iPad真机的UDID填写到Deve

四步搞定NiosII工程路径改变(转)

四步搞定NiosII工程路径改变 (2014-08-03 16:41:01) 转载▼http://blog.sina.com.cn/s/blog_bff0927b0102uy30.html 标签: nios 路径改变 setting.bsp 分类: 开发工具 在NiosII的开发过程中,路径改变会带来一系列问题:比如当我们在PC上某个路径下新建一个工程Nios_Prj(含QuartusII工程.Qsys模块和NiosII工程)后,假设其路径为C:\Nios_Prj,如果将工程路径改为D:\Nio

教你破解网页上各种限制(禁止鼠标右击复制等等)一步搞定!

有的网页防止别人直接复制盗取网页内容,设置了复制限制韩国的一些博客网站经常有这样的限制~现在我来教大家怎么用一步破解,不需要在浏览器里设置,一步搞定(博主建议:复制他人内容请注明来源,尊重他们劳动成果!) 来源: http://www.harleygwak.com/日志/教你破解网页上各种限制(禁止鼠标右击复制等等/方法:只要在浏览器地址栏输入以下内容就可以了. javascript:alert(document.onselectstart = document.onbeforecopy = d

一步一步搞定Python3.6编码问题

Python中的编码问题很蛋疼,我们遇到这类问题有时候会使用下面几个步骤处理该问题: 1:这么低级问题,别问同事了太丢人,赶紧百度: 2:卧槽,出了一堆广告,骂个娘,赶紧找相关解决问题方式: 3:尼玛,终于搞定,原来这么简单,赶紧搞定其它工作,晚上回头在查原因: 4:傻B单位每天加班,到家都11点了,赶紧洗洗睡了:等会,先来局王者农药...... 5:编码问题早就忘了: 6:过了几天又出现编码错误,,从第1步开始重新来过. 今天我们就花一局王者农药时间搞定Python3.6的编码问题. 搞清楚编

android4步搞定自定义dialog

第一步,drawable新建一个圆角的背景xml dialog.xml <?xml version="1.0" encoding="utf-8"?> <!-- 用户注册红色按钮 --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"><!-- andr

Spring Boot 集成 Ehcache 缓存,三步搞定!

本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序的数据缓存功能.在Spring Boot应用程序中,我们可以通过Spring Caching来快速搞定数据缓存. 接下来我们将介绍如何在三步之内搞定 Spring Boot 缓存. 1. 创建一个Spring Boot工程 你所创建的Spring Boot应用程序的maven依赖文件至少应该是下面的样子: <?xml version="1.0" encoding="UTF-8"?