蹭热点,请给我一面国旗@微信官方

简介: 今天下午微信朋友圈炸了,所有人都在要国旗。迎国庆换新颜活动 | 腾讯新闻的合成服务 微信中打开。我们呢,也来蹭蹭热度,聊聊其中的技术。

网络异常,图片无法展示
|

猜测如何实现


  1. 授权-获取用户头像


  1. 载入图片


  1. 手势操作-移动缩放


  1. 合成图片


  1. 下载图片


求证如何实现


通过观察分析节点,我发现


  1. 的确是载入图片了。地址为blob:开头


  1. 但是并无canvas操作,而且基于DOM,用scale、translatetransfrom来支持


  1. 合成依赖html2canvas


  1. 下载基于长按图片。


自己动手实现


  1. 上传图片


使用FileAPI获取文件,URL.createObjectURL(file)file转换url


// 上传头像功能块
     uploadInput.addEventListener('change', function(){
         if(this.files.length){
             var file = this.files[0];
             avatarView.style.backgroundImage = 'url('+URL.createObjectURL(file)+')';
             // avatarView.src=URL.createObjectURL(file)
         }
     })


2.手势操作


e.touches里面会有当前触发点。通过transfrom来合成,当然因为多个值会造成坐标系偏移,我使用多层来处理。


<div class="avatarViewScale" id="avatarViewScale" style="transform: scale(1,1)">
  <div class="avatarViewTranslate" id="avatarViewTranslate" style="transform: translate(0,0)">
   <div class="avatar avatarView" src="https://www.lilnong.top/static/img/avator/avator-14.jpg" id="avatarView"></div>
  </div>
 </div>


  1. 移动是比较touchstart记录点与touchmove记录点的插值。比较好算
  2. 缩放是也是比较记录点,但是需要用勾股定理计算比例


3.合成图片


通过cavnasdrawImage来合成。我觉得偏移量应该要注意一下


4.下载图片


通过 canvas.toDataURL('image/jpeg') 来生成base64url然后放入img。通过微信自带的长按下载来实现


总结


  1. 毛边问题
  2. 图片预加载策略
  3. 旋转的算法
  4. 自定义素材
相关文章
|
4月前
|
移动开发 JavaScript 前端开发
【绝技揭秘】从零到英雄:解锁UniApp H5项目中的二维码生成与扫描秘籍,让你的应用瞬间变身扫码达人!
【8月更文挑战第20天】二维码在移动应用中无处不在。本文详述了在UniApp H5项目中实现二维码生成与扫描的方法。通过对比插件`uni-app-qrcode`和JavaScript库`qrcode-generator`生成二维码的方式,以及使用插件`@juggle/resize-observer`和HTML5的MediaDevices API进行扫描的技术方案,帮助开发者挑选最佳实践。无论是插件的便捷性还是原生JavaScript的灵活性,都能满足不同项目需求。
145 0
|
Web App开发 iOS开发
ios系统微信分身怎么弄 微信多开分身
随着微信成为了必备的社交软件,使用微信的人也越来越多。但是,微信一直只允许在一个设备上登录一个账号,这就给那些需要同时管理多个微信账号的用户带来了不少不便。 相信大家都遇到过这种问题 微信作为一款通讯工具,在生活和工作中发挥的作用越来越重要,一些有特殊需求的人,可能要用到两个以上的微信,为了满足这部分用户的需求,在苹果手机上出现了一种叫做“微信多开”或“苹果微信分身”的应用,可以让用户在一个设备上同时登录多个微信账号,方便用户快捷管理不同的微信号码。 本文将为大家介绍如何使用苹果微信多开教程,让你的苹果设备可以同时登录多个微信账号
1317 0
|
Web App开发 移动开发 前端开发
关于h5纯网页(非微信环境)扫二维码扫码实现的探索研究
关于h5纯网页(非微信环境)扫二维码扫码实现的探索研究
1086 0
关于h5纯网页(非微信环境)扫二维码扫码实现的探索研究
|
机器学习/深度学习 编解码 人工智能
腾讯的这个算法,我搬到了网上,随便玩!
腾讯的这个算法,我搬到了网上,随便玩!
腾讯的这个算法,我搬到了网上,随便玩!
python实现微信甜蜜信息轰炸机
python实现微信甜蜜信息轰炸机
程序人生 - 王者荣耀正确刷荣耀称号的方法解析
程序人生 - 王者荣耀正确刷荣耀称号的方法解析
472 0
|
供应链 搜索推荐
淘宝上的神人们太多了!淘宝干脆开了一个神人学院
只要有一技之长,无论是谁,都可以一试!
淘宝上的神人们太多了!淘宝干脆开了一个神人学院
|
Web App开发 安全 Windows
微博疯传电脑提速“秘技” 360安全专家称纯属忽悠
 近来,一则为Windows XP用户提升网速的“电脑小技巧”风靡网上,在各大微博被转发数万次。该文称:“Windows XP自动保留了20%的网速,通过一定设置取消带宽限制,就可以使用100%的网速”。
899 0
|
iOS开发
10月31日科技联播:马云发微博悼念金庸,若无先生,不知是否还会有阿里
马云发文悼念金庸:只因一个“侠”字,结缘半生;苹果召开新品发布会,iPad 八年来最大升级,新款ipad pro终于取消home键;iOS12.1正式版上线,修复旧bug,再添新功能;三星利润创纪录,手机业务却走向低迷,一起来看今天的科技快讯!
1487 0