H5\uniapp图片添加水印

这篇博客介绍了如何在H5和uniapp中实现图片水印功能。通过uni.chooseImage选取图片,uni.getImageInfo获取图片信息,然后使用uni.createCanvasContext创建画布并设置水印文字,包括时间、用户名和地理位置。最后,将处理后的图片保存为新的临时文件路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

H5## 标题

图片加水印
	</div>
</body>
<script>
    function blobToImg(blob) {
        return new Promise((resolve, reject) => {
          let reader = new FileReader()
          reader.addEventListener('load', () => {
            let img = new Image()
            img.src = reader.result
            img.addEventListener('load', () => resolve(img))
          })
		  console.log(blob)
          reader.readAsDataURL(blob)
        })
      }
    
      function imgToCanvas(img) {
        let canvas = document.createElement('canvas')
        canvas.width = img.width
        canvas.height = img.height
        let ctx = canvas.getContext('2d')
        ctx.drawImage(img, 0, 0)
        return canvas
      }
    
      function watermark(canvas, text) {
        return new Promise((resolve, reject) => {
    
UniApp 是一套基于 Vue.js前端框架,它旨在提供一次编写、多次部署的能力,支持快速开发小程序、Web、H5 和原生应用。在 UniApp 中,如果你想要在小程序里上传图片添加水印,可以按照以下步骤操作: 1. 首先,在项目中引入必要的组件和库,例如uni-uploader用于文件上传,以及`uni.canvas`用于绘制水印。 ```html <template> <view> <uni-uploader action="your/upload/url" :on-success="handleSuccess"></uni-uploader> <canvas ref="watermarkCanvas" :width="imageWidth" :height="imageHeight"></canvas> </view> </template> ``` 2. 定义`handleSuccess`函数,当图片上传成功后,获取返回的URL,并在`mounted`生命周期钩子中图片到`ref`为`watermarkCanvas`的画布上,然后添加水印。 ```js <script> export default { data() { return { imageUrl: '', imageWidth: 0, imageHeight: 0, }; }, mounted() { this.getImageInfo().then(() => { // 这里假设你的水印文字、位置和样式已准备就绪 this.addWatermark(); }); }, methods: { handleSuccess(res) { this.imageUrl = res.data.url; this.getImageInfo(); }, getImageInfo() { const img = new Image(); img.src = this.imageUrl; img.onload = () => { this.imageWidth = img.width; this.imageHeight = img.height; this.$nextTick(() => { this.addWatermark(); }); }; }, addWatermark() { // 使用uni.canvas API 在画布上绘制水印 const ctx = this.$refs.watermarkCanvas.getContext('2d'); // ... 编写绘制水印的具体代码 }, }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值