更新记录
1.0.6(2023-04-08)
下载此版本
去掉无用依赖
1.0.5(2023-04-08)
下载此版本
- 修复H5有些图片出现半截空白
- 有问题请描述使用场景,最好能把图片贴出来,以便更好的优化兼容性
1.0.4(2023-03-31)
下载此版本
- 微信小程序IOS已测暂没发现问题,H5有些图片出现半截空白,暂时不完美有空再继续优化~
- 有问题请描述使用场景,最好能把图片贴出来,以便更好的优化兼容性
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
app-vue |
× |
√ |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
图片增加文字水印
**组件名:hpy-watermark
图片增加文字水印,支持拍照和相册选取多张
API
Props
属性名 |
类型 |
默认值 |
说明 |
markAlign |
String |
左下角 |
文字文字位置(默认:左下角)可选值:左上角:topLeft、右上角:topRight、左下角:bottomLeft、右下角:bottomRight |
fontSize |
Number |
40 |
文字大小,默认:40 |
fontColor |
String |
白色 |
文字颜色,默认:#FFFFFF |
quality |
Number |
1 |
图片的质量,取值范围为 (0, 1],不在范围内时当作1.0处理 |
fileType |
String |
jpg |
目标文件的类型,只支持 'jpg' 或 'png'。默认为 'jpg' |
shadowColor |
String |
黑色 |
阴影颜色,默认:rgba(0, 0, 0, 1.0) |
shadowWidth |
Number |
2 |
阴影边框大小,默认:2 |
textAlign |
String |
start |
设置文本的水平对齐方式,默认:start,文本在指定的位置开始。 start、end、center、left、right |
textBaseline |
String |
alphabetic |
设置文本的垂直对齐方式,默认:alphabetic文本基线是普通的字母基线。top、hanging、middle、ideographic、bottom |
methods
参数名 |
类型 |
说明 |
addWaterMark |
Object |
{filePaths:['图片地址1', '图片地址2'], fillTexts:['水印文字1', '水印文字2']} |
使用示例
<template>
<view>
<button @click="chooseImage">选择照片</button>
<!-- 增加水印 -->
<hpy-watermark ref="watermark" @waterMark="waterMark"></hpy-watermark>
<view class="ul">
<view class="li" v-for="(item, index) in imageList" :key="index">
<image :src="item" class="img" mode="widthFix"></image>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
imageList:[]
}
},
methods: {
// 选择图片
chooseImage() {
uni.chooseImage({
count: this.limit, // 限制的图片数量
sizeType: ['compressed'], // original 原图,compressed 压缩图,默认二者都有
sourceType: ['album', 'camera'],// album 从相册选图,camera 使用相机,默认二者都有
success: (res) => {
var imgPathList = res.tempFilePaths;
if(imgPathList.length > 0){
this.addImages(imgPathList);
}
},
fail: (err) => {
console.log('chooseImage fail', err)
if("chooseImage:fail cancel" == err.errMsg){
uni.showToast({
icon:'none',
title:'取消了选择'
});
}else{
// #ifdef MP
uni.getSetting({
success: (res) => {
let authStatus = res.authSetting['scope.album'];
if (!authStatus) {
uni.showModal({
title: '授权失败',
content: '系统上传需要从您的相册获取图片,请在设置界面打开相关权限',
success: (res) => {
if (res.confirm) {
uni.openSetting();
}
}
})
}
}
})
// #endif
}
}
});
},
// 添加图片
addImages(filePaths){
if(filePaths.length > 0){
var fillTexts = ["人员:张三", "地址:广东省珠海市香洲区XXX"];
fillTexts.push("时间:" + this.getNowTime());
// 添加水印
this.$refs.watermark.addWaterMark({
filePaths,
fillTexts
});
}
},
/**
* 水印添加回调,在H5平台下,filePath 为 base64
*/
waterMark(filePath){
this.imageList.push(filePath);
},
/**
* 获取当前时间
*/
getNowTime(){
var date = new Date(),
year = date.getFullYear(),
month = date.getMonth() + 1,
day = date.getDate(),
hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(),
minute = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(),
second = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
month >= 1 && month <= 9 ? (month = "0" + month) : "";
day >= 0 && day <= 9 ? (day = "0" + day) : "";
return (year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second);
}
}
}
</script>
<style scoped>
.ul{border: rgb(221, 221, 221) solid 1px; text-align: center; margin-right: 12px; position: relative }
.ul .li .img{display:block; width: 80px; height: 80px;}
</style>