简单到延伸
最新需要js 文件压缩图片上传 以前没搞过,新手把学习过程分享
一.选择图片并显示
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>Title</title>
</head>
<body>
<input id="imginput" type="file" accept="image/*" onchange="showImg(this)">
<div id="img1">
<canvas class="convas01"></canvas>
</div>
</body>
<script>
window.URL=window.URL||window.webkitURL;
var divimg1 = document.getElementById("img1");
function showImg(obj){
var files = obj.files;
var img = new Image();
img.width = 100;
if(window.URL){
img.src = window.URL.createObjectURL(files[0]);
}else{
//opera不支持createObjectURL/revokeObjectURL方法。需要用FileReader对象来处理
var reader = new FileReader();
reader.readAsDataURL(files[0]);
reader.onload = function(e){
img.src = this.result;
img.width = 200;
img.id="img01";
divimg1.appendChild(img);
}
}
img.id="img01";
divimg1.appendChild(img);
}
</script>
</html>
二.使用canvas代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>Title</title>
</head>
<body>
<input id="imginput" type="file" accept="image/*" onchange="showImg(this)">
<div id="img1">
<canvas id="convas01"></canvas>
</div>
</body>
<script>
window.URL=window.URL||window.webkitURL;
var divimg1 = document.getElementById("img1");
var convas = document.getElementById("convas01");
var ht = convas01.getContext("2d");
convas.width = 200;
convas.height = 200;
function showImg(obj){
var files = obj.files;
var img = new Image();
img.width = 200;
if(window.URL){
img.src = window.URL.createObjectURL(files[0]);
img.onload = function(e){
window.URL.revokeObjectURL(this.src);//方便引用无效回收
ht.clearRect(0, 0, convas.width, convas.width);//clearRect() 方法清空给定矩形内的指定像素。
ht.drawImage(img,0,0,convas.width,convas.height);
convas.toDataURL("image/png");
}
}else{
//opera不支持createObjectURL/revokeObjectURL方法。需要用FileReader对象来处理
var reader = new FileReader();
reader.readAsDataURL(files[0]);
reader.onload = function(){
img.src = this.result;
img.width = 200;
img.id="img01";
divimg1.appendChild(img);
}
}
}
</script>
</html>
三.压缩处理
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
<title>Title</title>
</head>
<body>
<input id="imginput" type="file" accept="image/*" onchange="showImg(this)">
<div id="img1">
canvas图片
<canvas id="convas01"></canvas>
</div>
<div id="img2">
压缩图片
</div>
</body>
<script>
window.URL=window.URL||window.webkitURL;
var divimg1 = document.getElementById("img1");
var divimg2 = document.getElementById("img2");
var convas = document.getElementById("convas01");
var ht = convas01.getContext("2d");
convas.width = 200;
convas.height = 200;
function showImg(obj){
var files = obj.files;
var img = new Image();
img.width = 200;
if(window.URL){
img.src = window.URL.createObjectURL(files[0]);
img.onload = function(e){
window.URL.revokeObjectURL(this.src);//方便引用无效回收
ht.drawImage(img,0,0,convas01.width,convas01.height);
var imgdata = convas.toDataURL("image/png");
//将canvas转化成Blob对象
var imgobj = new Image();
var blob =dataURLtoBlob(imgdata);
var url = window.URL.createObjectURL(blob);
imgobj.onload = function(e){
window.URL.revokeObjectURL(this.src);
}
imgobj.src= url;
divimg2.appendChild(imgobj);
}
}else{
//opera不支持createObjectURL/revokeObjectURL方法。需要用FileReader对象来处理
var reader = new FileReader();
reader.readAsDataURL(files[0]);
reader.onload = function(){
img.src = this.result;
img.width = 200;
img.id="img01";
divimg1.appendChild(img);
}
}
}
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(','), mime = arr[0].match(/:(.*"color: #ff0000">四.分辨率调节尝试
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin:0;padding:0;
}
body{
width:100%;height:100%;background:black;
}
canvas{
width:800px;height:480px;outline:1px solid pink;position:absolute;
left:0;top:0;right:0;bottom:0;margin:auto;
}
</style>
</head>
<body>
<button>240x120</button>
<button>320x240</button>
<button>480x320</button>
<button>640x420</button>
<button>800x480</button>
<canvas id="canvasId" width="480" height="320">
Your browser does not support the canvas element.
</canvas>
<script>
var canvas = document.getElementById('canvasId');
var context = canvas.getContext('2d');
var btns = document.getElementsByTagName('button');
var resolution = [
[240, 120],
[320, 240],
[480, 320],
[640, 420],
[800, 480]
];
//canvas分辨率
var resolutionW = canvas.getAttribute('width');
var resolutionH = canvas.getAttribute('height');
//canvas大小
var sizeW = canvas.offsetWidth;
var sizeH = canvas.offsetHeight;
console.log(resolutionW);
console.log(resolutionH);
console.log(sizeW);
console.log(sizeH);
var img = new Image();
img.src = "http://img5.niutuku.com/phone/1301/0920/0920-niutuku.com-483082.jpg"; //这张图片像素为800x480
img.onload = function() {
draw(3);
for (var i = 0; i < btns.length; i++) {
(function(i) {
btns[i].onclick = function() {
draw(i);
}
})(i);
}
}
function draw(i) {
canvas.setAttribute('width', resolution[i][0]);
canvas.setAttribute('height', resolution[i][1]);
context.clearRect(0, 0, sizeW, sizeH);
context.drawImage(img, 0, 0, sizeW, sizeH, 0, 0, resolution[i][0], resolution[i][1]);
}
</script>
</body>
</html>
总结
以上所述是小编给大家介绍的JS HTML图片显示Canvas 压缩功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
标签:
js,html,canvas
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“JS HTML图片显示Canvas 压缩功能”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
2025年11月30日
2025年11月30日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]