小程序上传图片加水印

小程序实现摄像头拍照 + 水印绘制 小程序端调用前置摄像头进行拍照,并且将拍好的照片添加水印后返回。下面的代码支持 底部定点水印 和 整体背景水印。技术栈:uniapp、vue。后期还可以继续 扩展多方位的定点水印 和 支持绘制多句话的背景水印... 阅读详情

思路:
1.点击图片上传
2.加水印
3.传给后台
html

<canvas class='canvas' canvas-id="firstCanvas"></canvas>

css

.canvas{
  border: 2rpx solid pink;
  background: pink;
  width: 100%;
  height: 100%;
  //position:fixed;left:100%; 想隐藏画布单又想执行画布方法,用这个css;用display会不执行画布
}

js

//点击方法上传
  chooseImg: function () {
    var that = this;
    wx.showActionSheet({
      itemList: ['手机拍摄', '图片上传'],
      success: function (res) {
        //if (res.tapIndex == 0) {
          wx.chooseImage({
            count: 3, // 默认9
            sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
            sourceType: ['camera'], // 可以指定来源是相册还是相机,默认二者都有
            success: function (res) {
              // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
              var tempFilePaths = res.tempFilePaths;//
              for (let item of tempFilePaths) {
                //that.uploadimg(item);//这是直接上传原图
              }
              if (that.data.imgList.length != 0) {
                that.setData({
                  imgList: that.data.imgList.concat(res.tempFilePaths)
                })
              } else {
                that.setData({
                  imgList: res.tempFilePaths
                })
              }
              that.watermark();//调方法加水印
            }
          })
      },
    })
  },
  //加水印
	watermark:function() {
    let that = this
    console.log(that.data.imgList,11111)//上传的图片
		//获取图片详细信息
		for (let item of that.data.imgList) {
			wx.getImageInfo({
				src: item,
				success: (ress) => {
					console.log("获取图片详情", item)
          let ctx = wx.createCanvasContext('firstCanvas')
					that.setData({
						canvasHeight: ress.height,
						canvasWidth: ress.width
          })
					//将图片src放到cancas内,宽高为图片大小
					ctx.drawImage(item, 0, 0, 56, 56)
					//将声明的时间放入canvas
					ctx.setFontSize(17) //注意:设置文字大小必须放在填充文字之前,否则不生效
					ctx.setFillStyle('grey')
					ctx.fillText("水印", 0, 30)
          			ctx.strokeText("水印", 0, 30)
					ctx.draw(false, function () {
					wx.canvasToTempFilePath({
						canvasId: 'firstCanvas',
						success: (res) => {
                			that.uploadimg(res.tempFilePath);//上传图片,加了水印的图片
							},
							fail: (e) => {
								console.log(e)
							}
						})
					})
				}
			})
		}
  },
  //上传图片
	 uploadimg(localUrl) {
    let that = this;
    wx.showLoading({
      title: "正在上传图片",
      mask: true
    })
    var tempFilePaths = [];
    tempFilePaths.push(localUrl)
    //这是公司封装的上传方法,就是ajax上传而已
    ygPost.uploadFile(tempFilePaths, function (res) {
      wx.hideLoading();
      if (res) {
        wx.showToast({
          title: '图片上传成功',
          icon: 'success',
          duration: 1000
        })
        let arr = []
        arr.push(res)
        that.setData({
          uploadList: that.data.uploadList.concat(arr)//加了水印的图片合集
        })
        console.log(that.data.uploadList, 1111)
        wx.hideLoading();
      }
    })
  },
  //测试end

注意事项:
1.如果在画图完成后,有对应操作时,必须在draw的callback后执行,比如图片预览、改变画布大小等
ctx.draw(false, function() {
console.log(‘后续操作’);

})
2.draw完成后的图片预览
wx.canvasToTempFilePath({
x: 0,
y: 0,
width: width,
height: height,
canvasId: canvasId,
fileType: ‘png’,
success: function(res) {
wx.previewImage({
urls: [res.tempFilePath],
})
}
}, ctx)

大概思路
微信小程序上传图片到七牛并加水印 微信小程序上传图片到七牛并通过canvas加水印 第一次写博客,请求大佬指点 const app = getApp() const qiniuUploader = require("…/…/utils/qiniuUploader"); //七牛初始化 因为我比较菜没敢改动 这个是官方的demo 大佬如果看到我的代码可以帮忙指点一下 感谢 function initQiniu(token) { co... 阅读详情

相关推荐

微信小程序上传图片添加水印

微信小程序使用wx.chooseMedia拍摄或从手机相册中选择图片并添加水印,

qq_38468358的博客 1108

微信小程序开发--添加照片水印(canvas )

当你在微信小程序中制作照片时,你可能需要添加水印,以便在分享时保护你的照片,并标识出你的品牌或网站。

qq_31020171的博客 6687

uniapp:实现上传图片文件并加入水印上传到阿里云OSS直传+显示上传进度/预估时间+上传后预览图像示例代码,uniApp实现上传图片功能并显示上传进度,前端直传阿里云oss(可上传单个或批量上传)

uniapp实现上传图片功能,并显示上传进度,在uniapp中使用阿里云OSS上传图片,为OSS图片或文件添加水印,uniapp上传图片文件到阿里云OSS经验总结,用户上传图片前先添加水印然后再直传到阿里云OSS存储上,调用系统相机拍照或本机相册选取图片后,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,阿里云oss对象存储,前端直传无需后端接口服务器,上传图片到阿里云oss,给图片添加水印后再传到oss上,详解前端阿里云OSS上传图片并添加

✅ 精选推荐文章 2799

微信小程序上传照片加水印

微信小程序上传照片加水印

jinqian_zc的博客 3967

555时基芯片的5种经典电路设计:从方波发生器到PWM调光实战

本文深入解析了555时基芯片的5种经典电路设计,从基础的无稳态方波发生器、单稳态触发器,到实用的占空比可调PWM信号源,并重点介绍了如何引入TVS保护电路增强系统鲁棒性。最后通过一个带保护的PWM LED调光台灯实战项目,综合展示了信号生成、功率驱动与电路保护的核心技术,是电子爱好者掌握模拟电路设计与应用的绝佳指南。

weixin_29207439的博客 492

OBS直播美颜全攻略:从插件下载到参数调校一站式指南

本文提供OBS直播美颜插件从下载安装到参数调校的一站式指南。详细介绍了如何安全获取并安装OBS美颜插件,重点讲解了在OBS中添加美颜滤镜的核心步骤,并分享了磨皮、肤色调整、细节增强等关键参数的实战调校技巧,帮助主播打造自然、专业的直播形象。

weixin_29197835的博客 329

循环多张图片使用 ctx.draw 微信小程序上传图片添加水印,后面图片空白问题。

循环使用ctx.draw出现空白图片。微信小程序上传图片添加水印

qq_45950523的博客 1402

从JX-2R-01热敏打印机芯到稳定打印:硬件设计与时序控制的实践指南

本文详细解析了JX-2R-01热敏打印机芯的硬件设计与驱动开发全流程。核心内容包括:实现严格的双电源上电时序控制、采用PWM恒流驱动步进电机确保走纸平稳,以及精确控制SPI数据加载与加热脉冲时序以获得清晰打印效果。文章提供了从电路设计、芯片选型到代码调试的实战指南,旨在帮助开发者构建稳定可靠的热敏打印模块。

weixin_29169899的博客 223

上传的图片加水印

1、步骤说明 第一步:uni.chooseImage,获取图片的临时路径 第二步:uni.getImageInfo,获取图片的宽高作为画布的大小 第三步:uni.createCanvasContext,创建 canvas 绘图上下文,在画布中画文字水印 第四步:uni.canvasToTempFilePath,把当前画布指定区域的内容转换成指定大小的图片 第五步:页面渲染 2、代码 <template> <view class="upload"> <view cla

y1238r的博客 418

AIoT 在线工程实训平台案例——智能家居

AIoT 在线工程实训平台案例——智能家居的操作步骤

m0_53608652的博客 1431

【第1章>第9节】基于FPGA的图像开运算处理算法的Verilog实现

本文介绍了基于FPGA的开运算图像处理实现方法。主要内容包括:1)输入图像二值化处理,通过阈值将灰度图像转换为二值图像;2)数据缓存与窗口提取,使用寄存器数组缓存5行图像数据并构建5×5处理窗口;3)腐蚀运算逻辑,判断窗口内是否全为白色像素;4)膨胀运算逻辑,检测窗口内是否存在白色像素。最后给出了Verilog实现方案,通过级联腐蚀和膨胀模块完成开运算处理。该方法可用于FPGA图像处理算法开发。

MATLAB,verilog,python,opencv,tensorflow,caffe,C,C++ 315

uni-app图片加水印;小程序图片添加水印;使用canvas上传图片加水印

原博主:点击查看 需求: 微信小程序,上传图片,成功后图片有水印,既图片的网络地址也有水印。 上传图片使用uni-app的uni.chooseImage()方法,水印是用canvas。 未知问题: 小程序模拟器上,上传第一张图片没问题,再次上传第二张图片,会发现第二张图片显示出来的是两张图片的叠加图;但是在真机使用时候,却不会出现也不影响(故没有处理,猜测解决方案:可以再每次上传图片处理水印时候,使用不同的canvas元素,不要使用同一个去做水印); 上传一张图: 上传第二张图:(此问题只会在小程序模拟器

i_am_a_div的博客 8861

PDBfixer: PDB修补蛋白残基

PDBFixer是一款专门用于修复蛋白质数据库(PDB)文件常见问题的工具。它能自动处理X射线晶体学结构中常见的缺陷,包括缺失氢原子、不完整侧链、非标准残基等问题。该工具提供三种使用方式:图形界面、命令行和Python API,支持添加缺失原子(全部/重原子/氢原子)、替换非标准残基、补全缺失残基等功能。特别适用于分子动力学模拟前的预处理,可自动添加水盒子并调整离子浓度。用户可通过简单命令或自定义脚本实现复杂修复流程,内置非标准残基替换表确保结构标准化。

Protein Designer的博客 933

微信小程序--上传图片加水印

微信小程序–上传图片加水印 ChooseImage() { var _this = this wx.chooseImage({ count: 1, //默认9 sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 sourceType: ['album'], //从相册选择 success: (res) => { // 返回选定照片的本地文件路径列表,tempFilePath js //选择图...

yynikki的博客 5134

TC3XX - MCAL知识点(三十五):Tasking编译器下,Tc3xx的MCAL代码如何使用多核,多核中断、多核任务、多核外设之间的MCAL配置与代码例程

文章用于记录在裸机情况下使用多核Tc387芯片,如何高效运行以及正确的代码、工程属性、链接文件配置等问题,相互结合、相互影响的地方,以示后续使用记录。

梦想技术家 963

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

小程序 上传图片加水印(图片和文字)

元素中添加canvas,画布放在屏幕外,避免在屏幕内遮挡。如图,图片上传的时候添加水印,水印可以为图片或文字。

m0_48334955的博客 1802

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

uniapp——微信小程序中拍照上传图片加水印功能

wxml文件 <!-- 拍照上传图片带水印 --> <camera device-position="front" flash="off" @error="error" style="width: 100%; height: 300px;"></camera> <button type="primary" @tap="takePhoto">拍照</button> <view>预览</view> <image mode=

World_Mei的博客 3704

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

小程序或者app,上传图片时加水印,并且保留原始图片的大小

app 小程序 上传图片加 自定义水印

hsl200002的博客 427

oss图片上传api_小程序OSS图片上传

图片上传加水印问题,代码如下!chooseImage: function (e) {var that = this;wx.chooseImage({sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: f...

weixin_32310195的博客 318

图片上传以及文章加水印

星期天没有事情做,就在家写了一个关于“图片上传以及图片加水印的小程序,希望大家能提出更好的意见,因为我是一个初学者,在本程序中我都做了比较详细的注视,相信对初学者有点帮助!” 表的结构如下: `login_check`-- CREATE TABLE `login_check` ( `id` int(11) NOT NULL auto_increment, `user

王永平 837

微信小程序添加水印重新画图。在苹果12.系统15.4 ctx.draw下没有回调问题

原有的上传加水印方式,赶着上需求,最后测出个兼容问题 UploadImg_new.js ,上传组件 请注意,小程序需要引入微信的绘图插件 /** * (多)图片上传方法(该方法接受一个options) * @url: string,上传的路径(非必传)) * @count: number,允许单次上传的数量(非必传:1-9) * @fn: function,操作本地图片路径的回调函数(非必传) * failCallback:function,某张照片上传失败的回调函数(非必传) * @stora

qq_45950523的博客 1108

we-cropper 完整上手指南:在微信小程序里快速实现图片裁剪

we-cropper 是一款面向微信小程序的 canvas 图片裁剪工具,体积小巧、API 精简,覆盖头像上传、商品图处理、分享图编辑等常见裁剪场景。本文按"场景 → 安装 → 最小可运行流程 → 配置详解 → 进阶与排坑"的顺序带你从零跑通一个 we-cropper 裁剪页,帮你快速把它接入自己的小程序。 ## 它到底解决了什么问题 小程序里要让用户"选一张图 → 框选区域 → 得到裁剪后的

gitblog_00088的博客 167

微信小程序上传图片使用canvas添加水印

微信小程序上传图片使用canvas添加水印

songduo112的博客 2277

微信小程序使用Canvas给图片加水印

代码详解wxml 在微信的wxml给个canvas元素给上id,canvas的宽高下面js中也有用到,统一放到data里面。 js(主要看js) data里面放了canvas宽、高 disposePath(url, canvasId, callback)方法主要是为了处理图片路径 三个参数:url(图片地址)、canvasId(canvas的Id)、callback(回调函数) 如

weixin_44157191的博客 3036

php上传加水印,PHP 实现图片上传并添加水印的方法

下面为各位大家介绍一下PHP图片上传并添加水印的方法 ,感兴趣的小伙伴一起来看看吧。 经测试代码如下:function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000"){$isWaterImage = FALSE;$formatMsg = "暂...

weixin_32795125的博客 660
上一篇: 微信小程序-picker自定义选择/下拉刷新/到底部自动加载/改变上一个页面的data属性值
下一篇: 小程序 跳转传参/改变左上角返回的页面/常见getCurrentPages()用法
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值