首页 > 编程语言 >微信小程序开发:异步处理接入的生成式图像卡通化

微信小程序开发:异步处理接入的生成式图像卡通化

时间:2024-03-15 22:23:17浏览次数:26  
标签:异步 生成式 微信 程序开发 任务 api 风格 卡通化

书接上文,我们完成了对接阿里云人像动漫化接口,现已完成的界面是这样的:

 

就是效果看着一般,看看效果:

 

然后我就在阿里云api市场转悠,就想看看还有没有什么其他奇奇怪怪的api,结果就发现了这个:

api链接这里:
https://help.aliyun.com/zh/viapi/api-generative-image-cartoon

 

看看这个效果,完全是之前的不能比的啊:

 

 

果断想到接入自己的小程序里,SDK调试链接:
https://next.api.aliyun.com/api/imageenhan/2019-09-30/GenerateCartoonizedImage?sdkStyle=old

 

它是一个异步任务,提交请求后会返回一个RequestId,我们需要拿这个RequestId去另一个接口拿到处理结果,可能需要等个8秒左右才有结果,因为处理需要耗时:
调试链接:
https://next.api.aliyun.com/api/imageenhan/2019-09-30/GetAsyncJobResult?sdkStyle=old

 

大家也可以按我上面的方法使用。

看看它的SDK写法:

 

就两个参数,一个图片链接、一个风格效果,在之前的配置上我们增加一个生成式图形卡通化的风格配置:

 

接下来先让它显示到界面上,因为我们之前已经有了一些风格选择,所以之前的风格选择我们要做成组件形式,不然会代码重复:

 

风格选择组件就这些简单HTML结构,我们在页面引用:

 

这里有两个风格列表,和两个风格的索引还有不同风格的点击事件,先看看页面呈现效果:

 

就是这样一个上下排列的结构。

我们这里只允许上下只能点击一个风格,就比如我们点了上面的3D特效,那么下面就不能选中,同理,选择了下面的风格,上面之前选中的就失焦了:

 

如何实现这个效果呢?上面的既不能选择第一个也就是原图、也不能上下两行风格同时选择。

首先第一个,只需要在点击时判断是否为0即可,为0则跳过,否则设置当前索引为点击时的索引:

 

可以看到我这里有一个设置为null的操作,这是因为设置为null以后某一条就不会选中任何风格了:

 

这里的style_select_index允许为null类型,否则设置null时,style_select_index就只能为0了,因为这是Number类型的默认值为0。

处理好了风格选择后,开始处理提交事件,点击上面一排风格时走原先的人像动漫化接口,如果点击的是下面一排风格,那么就得走生成式图像卡通化接口。

我们先把生成式图像卡通化接口接进来:

 

接口挺简单的,传入图片和风格类型即可。

再在选择第二排风格时做走生成式图像卡通化接口的逻辑:

 

这里我判断的逻辑是:如果为选中人像动漫化那一排的风格,那么就肯定选中了生成式图像卡通化风格。

这里的逻辑是先调用异步任务创建阿里云任务,再将阿里云创建的任务放到我本地创建的一个队列中,再去轮询阿里云任务处理的结果。

让我们看看代码,先创建异步任务、再将异步任务添加到本地队列:

 

本地队列追加的逻辑:

 

然后再起一个定时任务去轮询定时任务状态:

 

先while去检查本地队列是否存在任务,如果没有任务则继续下次轮询判断,如果本地队列存在任务,则从头部弹出一个任务,并向阿里云查询异步任务结果:

 

大概流程就是如上↑。

我们实际提交一个任务看看,当为异步任务时,我会将追加到列表的上传任务的状态设为loading,意为上传中:

 

因为定时任务一直在跑,所以队列有内容时就会开始处理了:

 

第一排的特效每次返回基本都差不多,但是第二排的特效有些返回都是不一样的,我比较喜欢这个炫彩卡通的,因为它每次都返回不一样的图片:

 

小程序名:《一方云知》。首页就是人像动漫化功能,欢迎大家使用。

小程序二维码:

 

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

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

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

标签:异步,生成式,微信,程序开发,任务,api,风格,卡通化
From: https://www.cnblogs.com/shuinanxun/p/18076377

相关文章

  • win11电脑上如何设置微信双开(打开两个微信)
    win11电脑上如何设置微信双开(打开两个微信)2024-3-12找到微信启动地址1.1找到微信的快捷键图标:1.2选中点击鼠标右键1.3复制目标(T)的地址设置启动项bat文件2.1新建一个txt文件2.2重命名为aa2.3显示后缀名2.3修改aa.txt为aa.bat测试下面介绍一下方法。找到微......
  • 微信小程序(页面导航)
      如果跳转到非tabBar页面,可以省略open-type          在onload获取到参数后,可以保存到data中供其他方法使用,常见的是使用query:{}接收 ......
  • 轻量级.net standard微信支付登录Nuget开源库
    我个人编写的库,在我个人网站,小程序等很多地方都在使用中,大家可以搜索小程序什邡市宅猫君网络工作室或者到我的网站store.zhaimaojun.cn 去体验支付和登录效果。本库主要实现了nativepay(二维码支付)jsapipay(小程序直接调起支付),需要注意的是这是基于api3的,非api2。以下演示如......
  • 学会这招,你也能实现微信批量自动加好友
    随着微信好友数量的增加,如何高效添加好友成为了一个值得探讨的话题。尤其是对于销售客服而言,每天手动添加大量的好友,费时又费力。要想解决这个问题,只需要一个能够自动添加好友的宝藏工具——微信管理系统,帮助大家解决这些重复枯燥的工作任务。首先,只需要在系统上批量导入所要......
  • 小程序开发平台源码系统:万能建站门店小程序功能 带完整的搭建教程以及代码包
    在移动互联网时代,小程序以其独特的优势,迅速占领了市场的一席之地。然而,对于许多中小企业和个人开发者来说,缺乏专业的开发团队和技术支持,使得小程序开发成为一项难以逾越的技术门槛。小编给大家分享一款万能建站门店小程序源码系统,旨在降低小程序开发的难度,让更多的人能够轻松搭......
  • 微信小程序 代驾预约评价系统 uniapp毕业设计源码lw
    代驾系统的系统项目的概述设计分析,主要内容有平台的具体分析,进行数据库的是设计,数据采用mysql数据库,并且对于系统的设计采用比较人性化的操作设计,对于系统出现的错误信息可以及时做出处理及反馈。本代驾服务系统主要包括系统用户管理模块、代驾线路信息管理、车辆信息管理、代......
  • 移动端的汉服交流推广活动报名系统 微信小程序
    对于小程序汉服推广的开发对硬件的要求并不高,正常的电脑配置就可以完成打开系统进行使用及管理,对于系统的打开最主要的一个方面是系统所使用的服务器方便,系统所用的服务器将直接影响往系统是否打开及系统的打开速度,要选择安全性、稳定性强的服务器。小程序Android端运行软件......
  • 基于微信小程序的公交信息在线查询系统小程序设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 微信小程序(数据请求)GEt和POST
          ......
  • 获取微信联系人列表的一种方法
    获取微信联系人列表的一种方法代码图例本文提供了一种获取微信的联系人列表的方法,步骤如下:给微信的联系人加上备注登录微信windowspc客户端,打开通讯录管理调整窗口大小,让备注这一列的内容完整显示使用FSCapture工具截取该窗口的长图(选中窗口,点击捕捉滚......