| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | 
							- <template>
 
- 	<view class="container">
 
- 		<page-title>图片预览</page-title>
 
- 		<view class="main-canvas">
 
- 			<canvas :style="{width:canvasWidth,height:canvasHeight}" canvas-id="myCanvas"></canvas>
 
- 			<image :src='waterMark'></image>
 
- 		</view>
 
- 	</view>
 
- </template>
 
- <script setup>
 
- 	import {
 
- 		ref
 
- 	} from 'vue'
 
- 	import {
 
- 		onLoad,
 
- 		onUnload
 
- 	} from "@dcloudio/uni-app"
 
- 	let canvasWidth = ref(0);
 
- 	let canvasHeight = ref(0);
 
- 	let waterMark = ref('')
 
- 	function createCanvas(options) {
 
- 		let width = 0;
 
- 		let height = 0;
 
- 		uni.getSystemInfo({
 
- 			success: res => {
 
- 				width = res.windowWidth * 0.92
 
- 			}
 
- 		})
 
- 		uni.getImageInfo({
 
- 			src: options.url,
 
- 			success: res => {
 
- 				height = res.height / res.width * width;
 
- 				canvasWidth.value = width + 'px';
 
- 				canvasHeight.value = height + 'px';
 
- 				const ctx = uni.createCanvasContext('myCanvas');
 
- 				ctx.draw(false, () => {
 
- 					setTimeout(() => {
 
- 						ctx.drawImage(res.path, 0, 0, width, height);
 
- 						ctx.clearRect(0, 0, width, height);
 
- 						ctx.textAlign = 'left';
 
- 						ctx.textBaseline = 'top';
 
- 						ctx.font = '12px Microsoft Yahei'
 
- 						ctx.fillStyle = 'rgba(255, 255, 255, 0.5)'
 
- 						ctx.fillText(options.time, width - 140, height - 20, res.width)
 
- 						uni.canvasToTempFilePath({
 
- 							canvasId: "myCanvas",
 
- 							success: res => {
 
- 								// let p = plus.io.convertLocalFileSystemURL(res.tempFilePath);
 
- 								// console.log(p);
 
- 								waterMark.value = 'file:///' + p
 
- 							}
 
- 						})
 
- 					}, 500)
 
- 				});
 
- 			}
 
- 		})
 
- 	}
 
- 	onLoad(options => {
 
- 		createCanvas(options)
 
- 	})
 
- 	onUnload(() => {})
 
- </script>
 
- <style lang="scss" scoped>
 
- 	.main-canvas {
 
- 		position: absolute;
 
- 		top: 14%;
 
- 		left: 4%;
 
- 		width: 92%;
 
- 		height: 86%;
 
- 	}
 
- </style>
 
 
  |