更新记录

1.0.6(2023-04-08)

去掉无用依赖

1.0.5(2023-04-08)

  • 修复H5有些图片出现半截空白
  • 有问题请描述使用场景,最好能把图片贴出来,以便更好的优化兼容性

1.0.4(2023-03-31)

  • 微信小程序IOS已测暂没发现问题,H5有些图片出现半截空白,暂时不完美有空再继续优化~
  • 有问题请描述使用场景,最好能把图片贴出来,以便更好的优化兼容性
查看更多

平台兼容性

Vue2 Vue3
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>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问