当前位置:首页 > uni-app

uniapp拍照加水印

2026-03-05 16:18:18uni-app

实现拍照加水印功能的方法

在uniapp中实现拍照并添加水印的功能,可以通过以下步骤完成:

1. 调用相机或相册选择图片
使用uniapp的uni.chooseImageAPI选择或拍摄照片:

uni.chooseImage({
  count: 1,
  sourceType: ['camera', 'album'],
  success: function(res) {
    const tempFilePath = res.tempFilePaths[0];
    addWatermark(tempFilePath); // 调用水印添加函数
  }
});

2. 创建Canvas绘制水印
通过Canvas在图片上绘制文字或图片水印:

function addWatermark(imagePath) {
  const ctx = uni.createCanvasContext('watermarkCanvas');
  ctx.drawImage(imagePath, 0, 0, 300, 200); // 绘制原图
  ctx.setFontSize(16);
  ctx.setFillStyle('rgba(255, 255, 255, 0.5)');
  ctx.fillText('水印文字', 20, 30); // 添加文字水印
  ctx.draw();
}

3. 保存处理后的图片
使用canvasToTempFilePath将Canvas转换为图片并保存:

ctx.draw(false, function() {
  uni.canvasToTempFilePath({
    canvasId: 'watermarkCanvas',
    success: function(res) {
      const watermarkedPath = res.tempFilePath;
      uni.saveImageToPhotosAlbum({
        filePath: watermarkedPath,
        success: function() {
          uni.showToast({ title: '保存成功' });
        }
      });
    }
  });
});

注意事项

  • Canvas尺寸适配:需根据设备屏幕调整Canvas宽高,避免图片变形。
  • 水印样式:可通过setFillStyle调整水印颜色和透明度,或使用rotate旋转角度。
  • 权限处理:在Android上需动态申请相册和相机权限,在manifest.json中配置。

扩展功能(图片水印)

若需添加图片水印,可在Canvas中叠加绘制:

uniapp拍照加水印

ctx.drawImage('static/logo.png', 10, 10, 50, 50); // 绘制图片水印

示例模板代码

<template>
  <view>
    <button @click="chooseImage">拍照加水印</button>
    <canvas canvas-id="watermarkCanvas" style="width:300px;height:200px"/>
  </view>
</template>

标签: 水印uniapp
分享给朋友:

相关文章

uniapp应用市场

uniapp应用市场

uniapp应用市场概述 Uniapp作为跨平台开发框架,支持将代码编译到iOS、Android、Web及各类小程序平台。其应用市场(插件市场)是开发者获取扩展插件、模板、组件的重要资源库,涵盖UI组…

uniapp请求超时处理

uniapp请求超时处理

uniapp请求超时处理方法 在uniapp中处理请求超时可以通过多种方式实现,以下是几种常见的处理策略: 设置全局请求超时时间 在main.js中配置全局请求超时时间,适用于所有请求: uni…

uniapp实现标题栏渐变

uniapp实现标题栏渐变

实现标题栏渐变的方法 在UniApp中实现标题栏渐变效果,可以通过修改页面的导航栏样式或使用自定义导航栏来实现。以下是几种常见的方法: 方法一:使用原生导航栏渐变 通过修改pages.json中的…

uniapp特性

uniapp特性

uniapp的核心特性 跨平台开发 uniapp支持一套代码编译到多个平台,包括iOS、Android、H5、微信小程序、支付宝小程序、百度小程序、字节跳动小程序等。开发者无需为不同平台单独编写代码。…

uniapp悬浮

uniapp悬浮

实现悬浮效果的方法 在UniApp中实现悬浮效果可以通过CSS的position: fixed或position: sticky属性结合动态样式控制来实现。以下是具体实现方式: 使用CSS固…

uniapp 目录

uniapp 目录

uniapp 目录结构 uniapp 的目录结构遵循 Vue.js 项目的规范,同时包含一些特有的文件和目录。以下是典型的 uniapp 项目目录结构及其说明: project-name/ ├──…