导航:首页 > 动漫图片 > js怎么压缩图片的大小

js怎么压缩图片的大小

发布时间:2023-06-16 01:50:44

‘壹’ js对从服务器取得的图片进行压缩显示

浏览器前端里面跑js没办法压缩图片的,js没io,只能载入图片,无法读入真正的图片数据

‘贰’ 前端图片压缩优化工具conversion

image-conversion 是一个简单易用的 JS 图片转换工具,提供了多种 Image、Canvas、File 和 dataURL 之间的转换方法。

另外,image-conversion 可以指定大小来压缩图片。

1、将图像压缩到 200kb:

2、以 0.9 的质量压缩图像

image-conversion 提供了多种方法来实现 Image、Canvas、File 和 dataURL 之间的转换,如下:

1、imagetoCanvas(image[, config]) {Promise(Canvas)}

将图像对象转换为画布对象。

2、dataURLtoFile(dataURL[, type]) {Promise(Blob)}

将 dataURL 字符串转换为 File(Blob) 对象,相当于把画布的内容转换成blob,type可以设置最终图片的格式。

type的值可以为:"image/png", "image/jpeg", "image/gif"

3、compress(file, config) {Promise(Blob)}

压缩文件(Blob)对象。

4、compressAccurately(file, config) {Promise(Blob)}

根据大小压缩文件(Blob)对象。

5、canvastoDataURL(canvas[, quality, type]) {Promise(string)}

将 Canvas 对象转换为 dataURL 字符串,该方法可以进行压缩。

6、canvastoFile(canvas[, quality, type]) {Promise(Blob)}

将 Canvas 对象转换为 Blob 对象,此方法可以进行压缩。

7、dataURLtoImage(dataURL) {Promise(Image)}

将 dataURL 字符串转换为图像对象。

8、downloadFile(file[, fileName])

下载图片到本地。

9、filetoDataURL(file) {Promise(string)}

将 File(Blob) 对象转换为 dataURL 字符串。

10、urltoBlob(url) {Promise(Blob)}

通过图像 url 加载所需的 Blob 对象。

11、urltoImage(url) {Promise(Image)}

通过图片 url 加载所需的 Image 对象。

觉得效果不错的请帮忙加个关注点个赞,经常分享前端实用开发技巧

‘叁’ 怎么用JavaScript在线压缩图片

主要用了两个html5的 API,一个file,一个canvas,压缩主要使用cnavas做的,file是读取文件,之后把压缩好的照片放入内存,最后内存转入表单下img.src,随着表单提交。
照片是自己用单反拍的,5M多,压缩下面3张分别是600多kb,400多kb,300kb的最后那张失真度很大了,压缩效率蛮高的。

<!DOCTYPE html>
<html><head> <meta charset="utf-8"/> <title>File API Test</title> <script type="text/javascript" src="js/jquery-1.11.0.min.js"></script> <script type="text/javascript" src="js/JIC.js"></script> <style> #test{ display: none; } </style></head><body><input type="file" id="fileImg" ><form> <img src="" id="test" alt=""></form><script> function handleFileSelect (evt) { // var filebtn = document.getElementById(id); // console.log(filebtn); // var files = filebtn.target.files; // console.log(filebtn.target); // console.log(files); var files = evt.target.files; for (var i = 0, f; f = files[i]; i++) { // Only process image files. if (!f.type.match('image.*')) { continue; } var reader = new FileReader(); // Closure to capture the file information. reader.onload = (function(theFile) { return function(e) { // Render thumbnail. // console.log(evt.target.files[0]); // console.log(e.target); console.log(e.target.result); var i = document.getElementById("test"); i.src = event.target.result; console.log($(i).width()); console.log($(i).height()); $(i).css('width',$(i).width()/10+'px'); //$(i).css('height',$(i).height()/10+'px'); console.log($(i).width()); console.log($(i).height()); var quality = 50; i.src = jic.compress(i,quality).src; console.log(i.src); i.style.display = "block"; }; })(f); // Read in the image file as a data URL. reader.readAsDataURL(f); } } document.getElementById('fileImg').addEventListener('change', handleFileSelect, false);</script></body></html>

var jic = { /** * Receives an Image Object (can be JPG OR PNG) and returns a new Image Object compressed * @param {Image} source_img_obj The source Image Object * @param {Integer} quality The output quality of Image Object * @return {Image} result_image_obj The compressed Image Object */ compress: function(source_img_obj, quality, output_format){ var mime_type = "image/jpeg"; if(output_format!=undefined && output_format=="png"){ mime_type = "image/png"; } var cvs = document.createElement('canvas'); //naturalWidth真实图片的宽度 cvs.width = source_img_obj.naturalWidth; cvs.height = source_img_obj.naturalHeight; var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0); var newImageData = cvs.toDataURL(mime_type, quality/100); var result_image_obj = new Image(); result_image_obj.src = newImageData; return result_image_obj; }, function ****(***)

阅读全文

与js怎么压缩图片的大小相关的资料

热点内容
萌女孩动漫闺蜜头像图片两张 浏览:69
迷你世界宇宙皮肤图片男生 浏览:626
浏览器如何设置图片规格 浏览:454
贝壳头图片男生 浏览:433
男装上衣服图片 浏览:670
切尔西鞋搭配图片男生 浏览:331
可爱情侣睡衣夏款图片 浏览:123
遇水就会消失衣服的毛巾图片 浏览:323
纹身美女壁纸大全图片 浏览:189
word如何依次修改图片尺寸 浏览:35
游泳剪纸图片简单 浏览:613
动漫的图案简笔画图片大全 浏览:12
建筑风景动漫图片 浏览:770
逃学威龙张敏穿白衣服的图片 浏览:19
放衣柜的衣服唯美图片 浏览:513
男生雨中跑车图片 浏览:536
美女退张开的图片 浏览:195
婴儿文字动画图片 浏览:956
简单的生日菜图片 浏览:604
85度c蛋糕图片价格表 浏览:316