.
  • 最新新闻
  • 安卓手机app开发用什么软件_app开发_大鱼科技
    搅局者来了,他叫小程序(微信、支付宝),也叫直达服务(小米)。江湖的玩法变了。 右下角的墨迹天气,是工具类App里的老炮,用户每天开一次、每次瞅一眼的打开方式,让他很头疼。「这怎么卖广告?」 为了挣钱,他在【天气】下面放了一坨新闻,还搞了个【时景】的UGC体系,提升停留时长。又在【我】的页面放了一堆广告入口。
  • 制作手机app大概费用多少钱_app开发_大鱼科技
    有时为了突出名称的意义,可能会跟品牌不一致,但网民搜索又可能搜索不到,这时关键字优化就很重要了,核心优化点在于:内容描述中必须包含核心关键字,并获得较好排名,如搜索『简历』,你的简历相关的小程序是否比较靠前。
  • 开发一个app需要多少钱费用_app开发_大鱼科技
    微信的表情雨让中国人的社交充满了人情味儿。当你在对话框输入“么么哒”或者“想你了”,聊天页面会掉下相应的表情雨,成为大多情侣互传情愫的标准动作。中国传统情人节日“七夕节”已至,情侣们在微信“秀恩爱”的方式又多了一种——黄金红包。
  • 什么是小程序_小程序开发需要多少钱_app开发_大鱼科技
    什么是小程序:小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不关心是否安装太多应用的问题。应用将无处不在,随时随地可用,但又无需安装卸载。
  • 看牌器 透视在哪里买_app开发_大鱼科技
    这个微信小程序的创意始于2012年,当时仅仅开发了Win平台桌面应用,随着移动互联网发展,开发技术栈难度降低
  • 做一个平台app需要多少钱_app开发_大鱼科技
    访问次数:昨日访问小程序内所有页面总次数,多个页面之间的跳转、同一页面的重复访问计为多次访问。 访问人数:昨日访问小程序内所有页面的总用户数,同一用户多次访问不重复计。 新访问用户数:首次访问小程序页面的用户数,同一用户多次访问不重复计。
  • 一天能赚2万的黑方法_app开发_大鱼科技
    没深思小程序最近一个月内更新7次背后是微信内部前所未有的力度在支持小程序(公众号都不曾有此殊遇),特别是微信刚公布2017年Q1月活账号破9.38亿。面对如此巨大的流量洼地,我们如何借助小程序来低成本/0成本获取用户?
  • 网赌破解器哪里下载_app开发_大鱼科技
    小程序定位 对于公司而言,小程序究竟是一个什么产品定位?以目前的大环境而言,无非就是几个关键点: 蹭一波热点,吸引眼球,做小程序这件事情本身就是一个吸引眼球的事情; 延伸产品线,对已有产品线做一个开辟,确保整个线的完整性; 借助小程序,赶上这趟车,营销导流;
  • 定制一款app大概需要多少钱_app开发_大鱼科技
    很多人不禁要对此举的意义发问:以微信的算法而出的搜索结果,岂不是严重遏制了新生小程序的后来者居上?这样即使定义了关键词,对推广而言并没有实质性的意义?微信官方自然也想到了与之相辅相成的策略,我们甚至可以认为后来的这步棋才是微信的本来目的。那就是于6月中旬首次出现于人们视野中的「搜索关键词广告」
  • 软件外包公司_app开发_大鱼科技
    代码的复杂度是评估一个项目的重要标准之一。较低的复杂度既能减少项目的维护成本,又能避免一些不可控问题的出现。然而在日常的开发中却没有一个明确的标准去衡量代码结构的复杂程度,大家只能凭着经验去评估代码结构的复杂程度,比如,代码的程度、结构分支的多寡等等。当前代码的复杂度到底是个什么水平?什么时候就需要我们去优化代码结构、降低复杂度?这些问题我们不得而知。 因此,我们需要一个明确的标准去衡量代码的复杂度。
  • 热门新闻
app怎么制作自己的平台_app开发_大鱼科技
时间:2021-01-10 11:57:23
app怎么制作自己的平台_app开发_大鱼科技

近期公司项目中有一个定制卡封面需求,是将几张图片融合成一张,并可以切换卡片横竖版的效果,最终需求如图:

 

这个需求乍一听起来并没有什么问题,只要看下小程序画布API就可以,但是实际上遇到的问题我花费两个晚上才基本解决,而且还有一个至今无法解决的问题也希望大家给出宝贵建议!

 

知道大家不喜欢墨迹,我先上完整代码,如果大家着急需要,直接过去拿代码就可以了,里面注释很丰富!如果可以希望大家给文章点个赞,码农不易感谢支持!

 

如果各位同学感兴趣,那可以往下看我的思路流程和踩坑记录、注意事项……

 

思路流程图:

 

坑:canvas的隐藏问题:

对于切换横竖屏时隐藏相应的canvas这个实现,首先大家想到的肯定是wx:if,但是很遗憾,并不好使,网上查阅相关资料后发现可以添加一个父盒子宽高0+overflow:hidden,模拟器完美运行,跑到真机上还是无效。最后发现大家都是用了一个终极办法,那就是送他离开千里之外~的position:fixed+left:10000px让canvas在不该用户看到的时候滚出屏幕

 

注意点1:用户操作:用一张能铺满canvas的图片合成,后再次点击选择图片,用一张不能铺满canvas的图片合成

我这里的图片裁剪,模拟的是aspectFill模式,保证短边完全显示,长边裁剪,可能会出现图片不能铺满屏幕的情况,这时候如果用户复现上述操作,没铺满的剩余空间会显示上次绘制的内容,体验很不好。所以要在用户选择图片成功后,注意是成功,调用ctx.draw()使用填充色绘制一遍,即清空canvas

 

注意点2:不需要处理图片裁剪以及不使用网络图片的同学可以不用wx.getImageInfo

我的代码中使用了wx.getImageInfo用于获取图片信息来裁剪图片,不需要的同学可以直接在用户选择图片后就开始绘制,但是注意小程序中canvas.drawImage不能使用网络图片,网络图片要通过 getImageInfo / downloadFile 先下载到本地并获取路径后才能绘制

 

注意点3:绘制圆角后,再绘制文字前注意设置填充色

我们这里绘制圆角的原理是将画布裁剪四个弧形角,后面的内容都在这个圆角矩形中绘制,绘制圆角矩形时使用了ctx.setFillStyle('transparent'),防止图片出现圆弧有溢出颜色的情况,所以圆角矩形绘制完后注意恢复填充色,否则文字无法绘制了。

 

注意点4:wx.canvasToTempFilePath获取失败问题

1:fail回调:官网文档说明:在 draw() 回调里调用该方法才能保证图片导出成功。

 

2. 以往的写法需要在执行 wx.canvasToTempFilePath之前开启一个一秒的计时器,因为生成canvas是异步的而且还需要耗费时间。但是在我开发中我发现去掉了也是没有问题的,可能是官方补充了这里的逻辑?