JavaScript 使用基于 64 位编码的代码减少图像的大小和质量 [英] JavaScript reduce the size and quality of image with based64 encoded code
本文介绍了JavaScript 使用基于 64 位编码的代码减少图像的大小和质量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一张图片的 based64 编码代码.现在我想减小图像的大小和质量.如何在 JavaScript 或 jQuery 中执行此操作?
这里解决的是工作代码:Index.php这是对我有用的javascript代码
<头><title>JavaScript 图像调整大小</title><meta http-equiv="content-type" content="text/html; charset=UTF-8"><风格>身体 {字体大小:16px;字体系列:Arial;}</风格><script type="text/javascript">函数_resize(img, maxWidth, maxHeight){无功比 = 1;var canvas = document.createElement("canvas");canvas.style.display="none";document.body.appendChild(canvas);var canvasCopy = document.createElement("canvas");canvasCopy.style.display="none";document.body.appendChild(canvasCopy);var ctx = canvas.getContext("2d");var copyContext = canvasCopy.getContext("2d");if(img.width > maxWidth)ratio = maxWidth/img.width;否则 if(img.height > maxHeight)ratio = maxHeight/img.height;canvasCopy.width = img.width;canvasCopy.height = img.height;尝试 {copyContext.drawImage(img, 0, 0);}赶上(e){document.getElementById('loader').style.display="none";alert("出现问题 - 请重新上传您的图片");返回假;}canvas.width = img.width * 比例;canvas.height = img.height * 比例;//要改变的行//ctx.drawImage(canvasCopy, 0, 0, canvasCopy.width, canvasCopy.height, 0, 0, canvas.width, canvas.height);//您使用的方法签名用于切片ctx.drawImage(canvasCopy, 0, 0, canvas.width, canvas.height);var dataURL = canvas.toDataURL("image/png");document.body.removeChild(canvas);document.body.removeChild(canvasCopy);return dataURL.replace(/^data:image/(png|jpg);base64,/, "");};函数调整大小(){var photo = document.getElementById("photo");如果(照片.文件!=未定义){var loader = document.getElementById("loader");loader.style.display = "内联";var file = photo.files[0];document.getElementById("orig").value = file.fileSize;var preview = document.getElementById("preview");var r = new FileReader();r.onload = (function(previewImage) {返回函数(e){无功maxx = 500;无功最大值 = 500;previewImage.src = e.target.result;var k = _resize(previewImage, maxx, maxy);如果(k!=假){document.getElementById('base64').value= k;document.getElementById('上传').submit();} 别的 {alert('问题 - 请尝试重新上传');}};})(预览);r.readAsDataURL(文件);} 别的 {alert("您的浏览器似乎不支持调整大小");}返回假;}头部><身体><div align="center"><h2>图像调整大小演示</h2><input type="file" name="photo" id="photo"><br><br><input type="button" onClick="resize();"值=调整大小"><img src="loader.gif" id="loader"/><img src="" alt="图片预览" id="预览"><form name="upload" id="upload" method='post' action='show.php'><textarea name="base64" id="base64" rows='10' cols='90'></textarea><input type="hidden" id="orig" name="orig" value=""/></表单>