小程序开发:接入腾讯云的人像动漫化api接口
接口如下:
图片的传参方式有两种,一种是传图片的base64,一种是图片url:
我打算免费版使用base64,如果付费用户支持永久存储历史的图片记录(图片存储到腾讯云对象存储中)。
前端框架我用的uview,所以我在页面简单使用了uview的上传组件,拿到图片本地路径后再转成base64,腾讯云的api接口在云对象里调用。
上传组件:
大概界面就是这样:
接下来就是把base64数据传给接口了。
腾讯云的这个API Explorer功能还挺好用的,有请求的实例代码。
按他的实例,安装一下
tencentcloud-sdk-nodejs-ft。
切换到对应的云对象目录下,npm i tencentcloud-sdk-nodejs-f:
index.obj.js完整代码:
const tencentcloud = require("tencentcloud-sdk-nodejs-ft")
// 云对象教程:
https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:
https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
// 腾讯云相关的api
module.exports = {
_before: function() { // 通用预处理器
},
// 统一的发送方法
async send(data) {
let system_config = await uniCloud.callFunction({
name: "get_system_config",
data: {
config_key: 'tencent_oss'
}
})
let Config = system_config['result'][0]['config_value']
const FtClient = tencentcloud.ft.v20200304.Client
const clientConfig = {
credential: {
secretId: Config.secretId,
secretKey: Config.secretKey,
},
region: Config.region,
profile: {
httpProfile: {
endpoint: "ft.tencentcloudapi.com",
},
},
}
// 实例化要请求产品的client对象,clientProfile是可选的
const client = new FtClient(clientConfig)
return new Promise((resolve, reject) => {
client.FaceCartoonPic(data).then(
(data) => {
resolve(data)
},
(err) => {
reject(err)
}
)
})
},
// 人像动漫化接口
async faceCartoonPic(image_base64) {
let data = {
"Image": image_base64,
"RspImgType": "url"
}
return await module.exports.send(data)
},
}
调用:
const tencentcloudapi = uniCloud.importObject('tencentcloudapi')
let result = await tencentcloudapi.faceCartoonPic(this.current_img_base64)
console.log('result', result)
效果:
生成正式版后出现问题了:
本地开发却没有这个问题,应该是
tencentcloud-sdk-nodejs-ft版本问题。
在uniapp的官方论坛搜索了下,果然找到了解决方案:
https://ask.dcloud.net.cn/question/139972
更新云对象根目录的package.json后,再重新上传部署。
问题解决!
欢迎大家使用我的小程序新上线的人像转动漫功能:微信搜索《一方云知》,找到小程序后拉到最下面有一个人像转动漫的图标,点进去就可以用啦,目前是免费使用哦。
这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。
想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。
感谢你的阅读与支持,期待在未来的文章中与你再次相遇!
小程序开发:接入腾讯云的人像动漫化api接口的更多相关文章
- 微信小程序开发(二)----- 云开发
1.概念 微信小程序的云开发是腾讯云与微信团队深度合作推出的一个全新的小程序的解决方案,它提供了云函数.云数据库与云存储这三大基础能力支持,随着云开发的出现,小程序的开发者可以将服务端的部署和运营的环 ...
- 微信小程序开发(三)----- 云开发案例
1.发送请求 2.云函数中发送请求,例子request https://github.com/request/request-promise 创建云函数movielist,右键在终端打开,输入 ...
- 聚合数据董铭彦:小程序开发的兴起将带火API数据交易
2016中关村大数据日活动近日在京举办,今年新进驻北京的聚合数据受邀参与,在13日举行的大数据交易专场论坛上,聚合数据副总裁董铭彦与参会嘉宾以"共筑数据交易产业生态,共享大数据时代红利&qu ...
- $微信小程序开发实践点滴——接入Bmob后端云
Bmob后端云官网:http://www.bmob.cn/ 微信公众平台官网:https://mp.weixin.qq.com/ 微信小程序官方开发文档:https://mp.weixin.qq.co ...
- 我们的微信小程序开发
基于微信小程序的系统开发准备工作 腾讯推出微信小程序也有一段时间了,在各种行业里面也都掀起一阵阵的热潮,很多APP应用被简化为小程序的功能迅速推出,同时也根据小程序的特性推出各种独具匠心的应用,相对传 ...
- 微信小程序开发之初探
本文是以一个简单的小例子,来简要讲解微信小程序开发步骤,希望促进学习分享. 概念 微信小程序,简称小程序,缩写xcx,英文mini program.是一种不需要下载安装即可使用的应用,它实现了应用“触 ...
- 《腾讯游戏人生》微信小程序开发总结
为打通游戏人生擂台赛与线下商家的O2O衔接,同时响应时下日臻火热的微信小程序,项目团队决定也开发一款针对性的微信小程序,以此方便商家在我们平台入驻并进行擂台赛事的创建和奖励的核销,进一步推广擂台赛的玩 ...
- 【腾讯Bugly干货分享】微信小程序开发思考总结——腾讯“信用卡还款”项目实践
本文来自于腾讯bugly开发者社区,未经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/58212d0fa7a7574c4f4cc3c5 作者:peggy 小程序概述 1 ...
- 微信小程序开发平台新功能「云开发」快速上手体验
微信小程序开发平台刚刚开放了一个全新的功能:云开发. 简单地说就是将开发人员搭建微信小程序后端的成本再次降低,此文刚好在此产品公测时,来快速上手看看都有哪些方便开发者的功能更新. 微信小程序一直保持一 ...
- 小程序开发初体验,从静态demo到接入Bmob数据库完全实现
之前我胖汾公司年会.问我能不能帮忙搞个小程序方便他们进行游戏后的惩罚/抽奖使用.出了个简单的设计图.大概三天左右做了个简单的小程序.目前提交审核了.对于写过一小段时间vue来说小程序很容易上手.写法和 ...
随机推荐
- js引起的 xxxx of null
在 vue 中操作 dom 元素的时候,报错 style of null 这个报错的原因,跟你代码的健壮性有关了; 这样就不会报错了 if( document.querySelectorAll(&qu ...
- ABP-VNext 用户权限管理系统实战01---AuthServer服务迁移数据库到mysql
一.从github上获取源码后修改命名空间 下载dome后修改解决方案名为Bridge. 二.默认是连接sqlserver的,需要修改为可以连接mysql 修改appsettings.json文件的C ...
- c++ container容器(string,vector,map,queue,stack等等)
STL和c++标准库 标准模板库STL部分包含在C++标准库中的软件库. c++标准库:即以std::开头,但是部分编译器厂商也会把STL的内容放在std:: namespace里面 由于一个常见的误 ...
- 【4】python读写文件操作---详细讲解!
相关文章: 全网最详细超长python学习笔记.14章节知识点很全面十分详细,快速入门,只用看这一篇你就学会了! [1]windows系统如何安装后缀是whl的python库 [2]超级详细Pytho ...
- unordered_map模拟实现|STL源码剖析系列|开散列
博主很久没有更新过STL源码剖析这个系列的文章了,主要是因为大部分STL常用的容器,博主都已经发过文章了,今天博主带着大家把哈希表也模拟实现一下. 前言 那么这里博主先安利一下一些干货满满的专栏啦! ...
- Vulkan学习苦旅05:马不停蹄地渲染(创建交换链VkSwapchainKHR)
通俗地说,渲染图像就是为图像的每个像素选择合适的颜色.例如,如果图像的分辨率为1920x1080,表示图像中有1920x1080个像素,渲染的过程,就是为每个位置的像素计算出合适的颜色.具体来说,假设 ...
- 图(树)的深度优先遍历dfs
图的深度优先遍历 深度优先,即对于一个图或者树来说,在遍历时优先考虑图或者树的单一路径的深度.示意图如下 即深度优先搜索的核心就是对一个路径一直向下搜索,当搜索到头时就回溯到前一状态再寻找别的路 深搜 ...
- 洛谷P2670 扫雷游戏 关于区域搜索标记的坐标增量法
最简单的思路就是扫描一边所有节点,对每个非地雷节点,去检查一下他八个方向的元素是否有'*',有的话就加一 但是逐个写出有点麻烦,我们不妨定义两个增量数组来存储每一次的相对位移,对每次检查只需要遍历这个 ...
- Linux(CentOS)设置密码永不过期
Linux服务器有默认的密码修改时间,默认是90天.这种情况下,即使设置过免密登录(互信),当密码到期后,依然需要输入服务器密码. 那么如何设置用户的密码永不过期呢? 一.查看密码过期时间 在root ...
- 使用explain分析Spark SQL中的谓词下推,列裁剪,映射下推
一.谓词下推 Predicate PushDown 谓词下推的目的:将过滤条件尽可能地下沉到数据源端. 谓词,用来描述或判定客体性质.特征或者客体之间关系的词项,英文翻译为predicate,而谓词下 ...