html制作照片查看器,canvas做的图片查看器1

本文介绍如何使用HTML5的Canvas API来实现图片的动态缩放及水印添加功能。通过JavaScript控制,实现了根据用户调整的比例尺改变图片大小,并将文字水印绘制到图片上。

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

效果图

e78e61a6e5df1a4120cb31b94379fbe4.png

html结构

Canvas

body{

background-color: #000;

}

#canvas{

display: block;

margin: 0 auto;

border: 1px solid #aaa;

}

.range-style{

display: block;

margin: 20px auto;

width: 800px;

}

.watermark-canvas-style{

display: block;

margin: 0 auto;

border: 1px solid #aaa;

}

js脚本

var canvas = document.getElementById("canvas");

var slider = document.getElementById("scale-range");

var watermarkCanvas = document.getElementById("watermark-canvas");

var context = canvas.getContext("2d");

var watermarkContext = watermarkCanvas.getContext("2d");

var image = new Image();

window.onload = function(){

canvas.width = 600;

canvas.height = 450;

var scale = slider.value;

console.log(scale);

image.src = "20170122161717.png";

image.onload = function(){

// context.drawImage(image,0,0,canvas.width,canvas.height);

drawImageByScale(scale);

slider. = function(){

scale = slider.value;

drawImageByScale(scale);

}

}

watermarkCanvas.width = 500;

watermarkCanvas.height = 100;

watermarkContext.font = "bold 50px Arial";

watermarkContext.fillStyle = "rgba(255,255,255,0.5)";

watermarkContext.textBaseline = "middle";

watermarkContext.fillText("%:)%yunshuo%:)%",20,50);

}

function drawImageByScale(scale){

var imageWidth = 600 * scale;

var imageHeight = 450 * scale;

// var sx = imageWidth / 2 - canvas.width / 2;

// var sy = imageHeight / 2 - canvas.height / 2;

// context.drawImage(image,sx,sy,canvas.width,canvas.height,0,0,canvas.width,canvas.height);

var dx = canvas.width / 2 - imageWidth / 2;

var dy = canvas.height / 2 - imageHeight / 2;

context.clearRect(0,0,canvas.width,canvas.height);

context.drawImage(image,dx,dy,imageWidth,imageHeight);

context.drawImage(watermarkCanvas,canvas.width - watermarkCanvas.width,canvas.height - watermarkCanvas.height);

}

368bfe098af9d9f341471496a054debf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值