目录

  • 体验地址
  • 前言
  • 一、知识点介绍
    • 1、小程序camera组件
    • 2、腾讯位置微信sdk
    • 3、微信小程序Canvas相关API(就不多说了)
  • 二、拍照添加水印(核心部分)

体验地址

前言

核心js代码粘在下面了,需要的宝贝可以看看思路,末尾会有一个源码地址,后期应该还会更新一些功能,比如说图片的裁剪合并,现在九宫格切割已经做好了(只是还有些bug…)

一、知识点介绍

1、小程序camera组件

camera详细介绍

2、腾讯位置微信sdk

解析当前位置,需要获取附近位置

3、微信小程序Canvas相关API(就不多说了)

咱就是啥也不说,先看看看效果吧,这个是开发工具调试界面,显示不了图片


还可以自定义位置哦

相机界面的代码,这里主要是用到了一个,切换前置摄像头跟后置摄像头,如果需要加上,修改闪光灯的话可以直接修改flash属性就行。

<camera wx:if="{{!src}}" device-position="{{position}}" flash="off" binderror="error" style="width: {{screenWidth}}px; height: 500px;"></camera>

二、拍照添加水印(核心部分)

主要思路就是,首先拿到图片的长宽,给到界面canvas上(我这里是固定值),然后可以做一些缩放,我这相机宽度是获取的屏幕宽度,高度固定五百,如需调整,自行优化一下,拍照之后将图片绘制到canvas上(CanvasContext.drawImage),最后添加水(将文字填充到canvas上),最后生成图片wx.canvasToTempFilePath

这里时间的话还有需要优化的地方,我是使用的本地时间,最好是使用远程服务器时间,才可以避免被本地修改,时间伪造。就没那味了~~~

let ctx = wx.createCanvasContext('firstCanvas')
ctx.drawImage(res.tempImagePath, 0, 0, that.data.screenWidth, 500) //五百和界面相机高度一致
ctx.setFontSize(14) //注意:设置文字大小必须放在填充文字之前,否则不生效
ctx.setFillStyle('white')
ctx.fillText(that.data.addressInfo.address, 20, 480)
takePhoto() { //拍照let that = thisthis.ctx.takePhoto({quality: 'high',success: (res) => {this.setData({src: res.tempImagePath,isPhoto: false,})wx.getImageInfo({ //获取照片宽高src: res.tempImagePath,success: (ress) => {let ctx = wx.createCanvasContext('firstCanvas')that.setData({canvasHeight: ress.height,canvasWidth: ress.width})//将图片src放到cancas内,宽高为图片大小ctx.drawImage(res.tempImagePath, 0, 0, that.data.screenWidth, 500) //五百和界面相机高度一致ctx.setFontSize(14) //注意:设置文字大小必须放在填充文字之前,否则不生效ctx.setFillStyle('white')ctx.fillText(that.data.addressInfo.address, 20, 480)ctx.setFontSize(30) //注意:设置文字大小必须放在填充文字之前,否则不生效ctx.setFillStyle('white')ctx.fillText(that.data.nowTime, 20, 450)ctx.draw(false, function () {wx.canvasToTempFilePath({canvasId: 'firstCanvas',fileType: 'jpg',quality: 1,success: (res1) => {console.log(res1)that.setData({src: res1.tempFilePath})},fail: (e) => {console.log(e)}})})}})}})
},

所以到这里了,哥哥们还是点个赞再走吧,仓库地址小弟给你们放下边了。


仓库地址:https://github.com/codernmx/mark-canvas

整个canvas玩一玩,做一个简单的水印相机小程序相关推荐

  1. 用c++做一个简单的打飞机小游戏(详细说明与注释)

    用c++做一个简单的打飞机小游戏(详细说明与注释) 说明: 代码长度5k多,行数200多行. 不仅没有压行,反而为了条理清晰一点所以很多中间加空换行,把很多可以写在一起的分割成了几个函数. 为了不会忘 ...

  2. 利用Python做一个简单的对战小游戏

    利用Python做一个简单的文字对战小游戏 一.游戏介绍 1.大体介绍:文字版的对战小游戏,可以利用Python随机生成两个角色,角色带有各自的血量和攻击值两个指标.两人在对战时同时攻击对方,同时造成 ...

  3. 一个程序如何连接到外网_如何开发制作小程序?做一个电商带直播小程序

    开发制作小程序可以让商家更方便地引流获客.增加线上订单.尤其是今年小程序直播大火,商家有了新的运营私域流量的利器,因此做一个电商带直播功能的小程序是很有用的. 如何开发一个这样的小程序呢?流程如下: ...

  4. 沐风:做一个会自动赚钱的小程序

    当下互联网最火的莫过于小程序了,小程序具有很多天生的优势: 一.扎根于微信生态,拥微信10亿级的海量用户可挖掘. 二.用户界面和流畅度体验,可媲美原生APP. 三.开发周期短,成本低,成本相对原生AP ...

  5. 如何做一个基于微信失物招领小程序毕业设计毕设作品

    分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):我们微信小程序项目属于CS架构,C客户端是我们要开发的小程序,S端是我们要开发的后台管理系 ...

  6. 使用Python做一个切换电脑桌面壁纸的小程序

    文章目录 一.前言 二.原理 三.软件下载地址 一.前言 免费的壁纸软件竟有许多广告,影响自己体验? 那就使用python自己制作一个小软件满足自己的需求! 在IDE中运行效果 软件实现的效果 效果是 ...

  7. 如何做一个基于微信求职招聘小程序毕业设计毕设作品

    分析架构 我们开发系统,常规有两个架构,一个BS架构(浏览器/服务器模式),一个CS(客户端/服务器端模式):我们微信小程序项目属于CS架构,C客户端是我们要开发的小程序,S端是我们要开发的后台管理系 ...

  8. 微信小程序傻瓜制作_傻瓜式教程:做一个带优惠券的微信小程序

    优惠券一直是电商零售商家们常用的营销手段之一,如今在各种微信小程序商城中,我们也常常能见到优惠券.为什么商家这么喜欢使用优惠券呢?当然是因为它确实能有效地刺激客户消费.商家发放优惠券,利用一种对比效应 ...

  9. 一个简单的留言微信小程序

    简易留言微信小程序 该小程序旨在熟悉小程序的页面写法,熟悉小程序的构成,掌握数据库的操作等等. 来了. 前言,一个小程序,如果需要和用户互动,就必定要获取用户授权,所以授权的操作这里省略, 我们只关注 ...

最新文章

  1. 供SAPI中TTS功能用使的Win8.1语言包安装
  2. 深度学习笔记:优化方法总结(BGD,SGD,Momentum,AdaGrad,RMSProp,Adam)
  3. c++中的引用和指针
  4. Java 11的期望
  5. htaccess文件,强大的功能
  6. Java的简单了解。
  7. ubuntu安装python环境_AirSim 无人驾驶教程(1)Airsim 在Ubuntu环境下的安装
  8. MapReduce:Simplified Data Processing on Large Clusters(中文翻译2)
  9. linux查看端口出现unix,linux查看端口被占用状况
  10. soundpool android,Android中用SoundPool播放音频
  11. 一个简单的吃豆子游戏
  12. HTML常用标签和表格教材,常用标签及表格.html
  13. 二代测序(Next generation sequencing)介绍
  14. 以防遗忘001_通过斜率求垂直线段的端点,附Unity(UI image)画线
  15. 数字图像处理 第八章 图像压缩
  16. Revit 二次开发 获取多段轴网的location
  17. HTML中支持qlv文件格式吗,qlv格式怎么播放,格式工厂不支持qlv
  18. Error creating bean with name ‘endpoint‘ defined in class path resource [.../CxfConfig.class]
  19. JS基础实战--day07
  20. 吉首大学第九届"新星杯"大学生程序设计大赛 M.来来来 比比咱谁更聪明

热门文章

  1. Android仿腾讯手机管家实现桌面悬浮窗小火箭发射的动画效果
  2. 网易云类音乐--主页与登录界面结构html+css实现(三)
  3. 推荐一款优秀的硬盘空间管理工具软件-TreeSize Free
  4. 第八集 昆仑初度尘未洗,夜宿禁区五道梁
  5. 无线网络 笔记本连接正常上网,手机之类的就不能上网
  6. 离散数学在计算机科学中的应用
  7. 高新企业申请补贴需要什么条件
  8. 计算跑步时的能量消耗(卡路里和千焦的换算公式)
  9. Excel学习日记:L1-excel入门
  10. Visio复制的图片在Word中不显示