<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="refresh">
<meta name="Copyright" content="����ͼ��" />
<meta name="description" content="ѧ��͵�������������������߹���Ч������Ч�ķ�����" />
<meta content="����ͼ��" name="keywords" />
<base target="_blank">
<title>在线图片压缩并下载</title>
</head>
<body>
<input type="file" id="fileBox" />
<img id="transform" src="" />
<script src="jquery.min.js"></script>
<script>
var imgSrc;
$('#fileBox').change(function(e) {
var file=e.target.files[0];
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function() {
console.log(this.result);
imgSrc = this.result;
$('#transform').attr("src", imgSrc);
// ���ú�������ͼƬ ��������������������������������
dealImage(imgSrc, {
// ע�⣺��pc�˿����þ���·��������·�����ƶ��������þ���·������Ϊ��take photo����ͼƬ·������û���Գɹ������������Գɹ��˿��Է���һ�¾��飩��
width: $('#transform').width()
}, function(base) {
//ֱ�ӽ���ȡ����base64���ַ������ŵ�һ��image��ǩ�оͿɿ������Ժ���ѹ��֮������ʽͼ��
document.getElementById("transform").src = base;
img_sourse = base;
console.log("大少" + base.length / 1024 + " " + base);
})
};
})
var img_sourse;
function dealImage(path, obj, callback) {
console.log(path);
var img = new Image();
img.src = path;
img.onload = function() {
var that = this;
// Ĭ�ϰ�����ѹ��
var w = that.width,
h = that.height,
scale = w / h;
w = obj.width || w;
h = obj.height || (w / scale);
var quality = 1; // Ĭ��ͼƬ����Ϊ0.7
//����canvas
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
// �������Խڵ�
var anw = document.createAttribute("width");
anw.nodeValue = w;
var anh = document.createAttribute("height");
anh.nodeValue = h;
canvas.setAttributeNode(anw);
canvas.setAttributeNode(anh);
ctx.drawImage(that, 0, 0, w, h);
// ͼ������
if (obj.quality && obj.quality <= 1 && obj.quality > 0) {
quality = obj.quality;
}
// qualityֵԽС�������Ƴ���ͼ��Խģ��
var base64 = canvas.toDataURL("image/jpeg").replace("image/jpeg", 'image/octet-stream');
// �ص���������base64��ֵ
callback(base64);
}
}
//����
function downloadFile(fileName, content) {
let aLink = document.createElement('a');
let blob = base64ToBlob(content); //new Blob([content]);
let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true); //initEvent ���Ӻ�����������FF�»ᱨ�� �¼����ͣ��Ƿ�ð�ݣ��Ƿ���ֹ��������Ĭ����Ϊ
aLink.download = fileName;
aLink.href = URL.createObjectURL(blob);
// aLink.dispatchEvent(evt);
//aLink.click()
aLink.dispatchEvent(new MouseEvent('click', {
bubbles: true,
cancelable: true,
view: window
})); //���ݻ���
}
//����ͼƬ
function download() {
let imgData = img_sourse;
downloadFile(Date.parse(new Date())+'.jpeg', imgData);
}
//base64תblob
function base64ToBlob(code) {
let parts = code.split(';base64,');
let contentType = parts[0].split(':')[1];
let raw = window.atob(parts[1]);
let rawLength = raw.length;
let uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], {
type: contentType
});
}
</script>
<span onclick="download()" href="#" style="color:seagreen;">下载压缩后的图片</span>
</body>
</html>
没有合适的资源?快使用搜索试试~ 我知道了~
选择图片,在线图片压缩并下载(纯前端)
共2个文件
js:1个
html:1个
0 下载量 69 浏览量
2023-10-10
10:45:50
上传
评论
收藏 34KB ZIP 举报
温馨提示
选择图片,在线图片压缩并下载 1、压缩后的图片体积很少,清晰度与原图相同 2、可扩展功能很多,例如:压缩后的图片上传到服务器(可大大减小服务器的储存空间) 3、方便我们日常P图,减少体积 4、不需要后端服务,纯前端处理 5、本地运行,需要搭建本地服务器,否则会报错 6、完整DEMO,不会报错 7、遇到问题,可留言,博主积极处理 8、其他前端框架,也可以做图片在线压缩,都是js代码,举一反三
资源推荐
资源详情
资源评论
收起资源包目录
在线图片压缩并下载.zip (2个子文件)
index.html 5KB
jquery.min.js 94KB
共 2 条
- 1
资源评论
qaakd
- 粉丝: 27
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- Highlight Plus v20.0.1
- 基于MIC+NE555光敏电阻的声光控电路Multisim仿真原理图
- python tkinter-08-盒子模型.ev4.rar
- Doozy UI Manager 2023
- 基于matlab实现夜间车牌识别程序(1).rar
- 基于matlab实现无线传感器网络无需测距定位算法matlab源代码 包括apit,dv-hop,amorphous在内的共7个
- 基于python的yolov5实现的旋转目标检测
- 基于matlab实现无线传感器网络 CAB定位仿真程序 这是无线传感器节点定位CAB算法的仿真程序,由matlab完成.rar
- 基于matlab实现图像处理,本程序使用背景差分法对来往车辆进行检测和跟踪.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功