The content of this article is about the JavaScript code for image compression. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Without further ado, let’s go straight to the code. What is returned is a base64 string
/** * 图片压缩,默认同比例压缩 * @param {Object} path * pc端传入的路径可以为相对路径,但是在移动端上必须传入的路径是照相图片储存的绝对路径 * @param {Object} obj * obj 对象 有 width, height, quality(0-1) * @param {Object} callback * 回调函数有一个参数,base64的字符串数据 */ function dealImage(path, obj, callback){ 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 = 0.7; // 默认图片质量为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', quality ); // 回调函数返回base64的值 callback(base64); } }
Calling method
// 调用函数处理图片 dealImage("路径", { // 注意:在pc端可以用绝对路径或相对路径,移动端最好用绝对路径(因为用take photo后的图片路径,我没有试成功(如果有人试成功了可以分享一下经验)) width : 200 }, function(base){ //直接将获取到的base64的字符串,放到一个image标签中就可看到测试后的压缩之后的样式图了 document.getElementById("transform").src = base; console.log("压缩后:" + base.length / 1024 + " " + base); })
PS: The main idea is After obtaining the image, use H5 canvas technology to convert the image data into a base64 string, and finally transmit it to the background. The background will store the base64 string data as an image.
Related recommendations:
Javascript code sharing to realize provincial and municipal linkage
Javascript code introduction to realize binary tree
The above is the detailed content of JavaScript code to implement image compression. For more information, please follow other related articles on the PHP Chinese website!

使用PHP保存远程图片时如何处理图片压缩?在实际开发中,我们经常需要从网络上获取图片并保存到本地服务器。然而,有些远程图片可能太大,这就需要我们对它们进行压缩以减少存储空间和提高加载速度。PHP提供了一些功能强大的扩展来处理图片压缩,其中最常用的是GD库和Imagick库。GD库是一个流行的图像处理库,它提供了许多功能用于创建、编辑和保存图像。下面是一个使用

Vue技术开发中如何处理图片上传和压缩在现代web应用中,图片上传是一个非常常见的需求。然而,由于网络传输和存储等方面的原因,直接上传原始的高分辨率图片可能会导致上传速度慢和存储空间的大量浪费。因此,对于图片的上传和压缩是非常重要的。在Vue技术开发中,我们可以使用一些现成的解决方案来处理图片上传和压缩。下面将介绍如何使用vue-upload-compone

uniapp中如何实现图片压缩功能一、引言在现代社会中,图片已经成为人们日常生活中不可或缺的一部分。然而,随着手机拍照功能的普及和照片像素的提升,图片的文件大小也不断增长。这不仅会占据手机内存,还会导致图片在网络传输过程中的加载时间过长。因此,对图片进行压缩已成为开发者重要的任务之一。二、uniapp中的图片压缩uniapp是基于Vue.js的跨平台开发框架

利用uniapp实现图片压缩功能随着手机拍照功能的提升,我们在日常生活中经常会拍摄大量的照片。然而,这些高像素的照片占据了手机的存储空间,使手机变得缓慢且容易存满。为了解决这个问题,我们可以利用uniapp中的相关技术,实现图片压缩功能,将图片压缩至更小的文件大小,保留合适的像素和画质。下面我们将详细介绍在uniapp中如何实现图片压缩功能。步骤一:引入相关

Java作为一种广泛应用于软件开发领域的编程语言,其丰富的库和强大的功能可用于开发各种应用程序。在Web和移动应用开发中,图片压缩和裁剪是常见的需求。在本文中,将揭秘一些Java开发技巧,帮助开发者实现图片压缩和裁剪的功能。首先,让我们讨论图片压缩的实现。在Web应用中,经常需要通过网络传输图片。如果图片过大,将会导致加载时间过长和占用更多的带宽。因此,我们

如何利用图片压缩减少页面加载时间提升Java网站的访问速度?在现代互联网时代,网站的加载速度对于用户体验和SEO排名至关重要。而在网页内容中,图片通常是占据了很大一部分的内容。因此,针对图片的优化和压缩是提升网站访问速度的一个重要手段。Java作为一种广泛应用于网站开发的编程语言,具备了处理图片压缩的能力。下面,我们将介绍如何利用Java进行图片压缩,减少页

Vue技术开发中如何处理图片资源的压缩和优化摘要:随着前端开发的不断发展,网页中的图片占据越来越重要的位置。然而,图片资源过大会导致页面加载速度慢,影响用户体验。为了解决这个问题,本文将介绍如何使用Vue开发中处理图片资源的压缩和优化方法,并给出具体的代码示例。一、图片压缩手动压缩手动压缩是最常见的一种方式,可以使用各种图片处理软件,如Photoshop、S


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver Mac version
Visual web development tools

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Notepad++7.3.1
Easy-to-use and free code editor

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

SublimeText3 Mac version
God-level code editing software (SublimeText3)
