• 小程序开发:接入腾讯云的人像动漫化api接口


    接口如下:

    图片的传参方式有两种,一种是传图片的base64,一种是图片url:

    我打算免费版使用base64,如果付费用户支持永久存储历史的图片记录(图片存储到腾讯云对象存储中)。

    前端框架我用的uview,所以我在页面简单使用了uview的上传组件,拿到图片本地路径后再转成base64,腾讯云的api接口在云对象里调用。

    上传组件:

    大概界面就是这样:

    接下来就是把base64数据传给接口了。

    腾讯云的这个API Explorer功能还挺好用的,有请求的实例代码。

    按他的实例,安装一下
    tencentcloud-sdk-nodejs-ft。

    切换到对应的云对象目录下,npm i tencentcloud-sdk-nodejs-ft:

    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后,再重新上传部署。

    问题解决!

    欢迎大家使用我的小程序新上线的人像转动漫功能:微信搜索《一方云知》,找到小程序后拉到最下面有一个人像转动漫的图标,点进去就可以用啦,目前是免费使用哦。

    这篇文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

    想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

    感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

  • 相关阅读:
    (一)PHP语法基础——PHP
    学术分享 | 清华大学 康重庆:电力系统碳计量技术与应用(Matlab代码实现)
    SpringCloud对服务内某个client进行单独配置
    ACTF 2022圆满落幕,0ops战队二连冠!!
    2023_Spark_实验七:Scala函数式编程部分演示
    快速掌握Linux中的“进程管理和任务执行”
    网站如何判断请求是来自手机-移动端还是PC-电脑端?如何让网站能适应不同的客户端?
    猿创征文|数据导入与预处理-第3章-pandas基础
    Cpolar - 本地 WebUI 账号登录失败解决方案
    2.06_python+Django+mysql实现pdf转word项目_项目开发-创建模型
  • 原文地址:https://blog.csdn.net/f2424004764/article/details/136368032