一款智能水印相机,拍照自动添加时间、地点、经纬度等水印文字,可用于工作考勤、学习打卡、工作取证等,支持自定义内容以及给现有照片添加水印。无需安装,无需注册,即开即用。
原理
主要是通过canvas给图片上添加上时间水印地点信息。首先通过官方API(chooseLocation)获取到位置信息,然后利用JS获取本地时间,最后绘制到canvas上通过canvasToTempFilePath生成图片。
获取位置信息
这个接口在去年开始就需要用户手动申请,在小程序管理页面申请,如果申请按钮无法点击,在提交代码时会弹窗申请弹窗,之后就可以申请了。通过后才可以上线小程序。代码如下:
/**
* 获取地址信息
*/
getLocation: function () {
wx.getLocation({
success: res => {
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: res => {
let address = res.result.address;
this.setData({
address
})
}
})
}
})
},
/**
* 手动选择地点
*/
chooseLocation: function () {
wx.chooseLocation({
success: res => {
console.log(res)
this.setData({
address: res.address
})
},
fail: err => {
console.log(err)
}
})
}
其中qqmapsdk使用的是腾讯位置服务的sdk,需要去官方下载并申请key,然后再页面中加上如下代码:
var QQMapWX = require('../../libs/qqmap-wx-jssdk.js');
var qqmapsdk = new QQMapWX({
key: '' // 这里填写你的key
});
时间信息就很简单了,这里给大家提供封装了一下,如下代码:
export const formatTime = () => {
const date = new Date();
const year = date.getFullYear()
const month = date.getMonth() + 1
const day = date.getDate()
const weekDay = ['日', '一', '二', '三', '四', '五', '六'][date.getDay()]
const hour = date.getHours()
const minute = date.getMinutes()
const second = date.getSeconds()
return {
date: [year, month, day].map(formatNumber).join('-'),
time:[hour, minute, second].map(formatNumber).join(':'),
week: '星期'+weekDay
}
}
const formatNumber = (n) => {
const s = n.toString()
return s[1] ? s : '0' + s
}
![图片[1]-开源原创智能水印相机微信小程序-零玖吧](https://www.09b.cn/wp-content/uploads/2026/09/image-346.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








暂无评论内容