[英]how to improve .png to .jpeg conversion
我正在使用以下代码将 .png 数据 URL 转换为较小的 .jpeg 数据 URL。 这里每个 .png 数据 URL 大小为 40mb 或以上,所以我下面的代码花费了太多时间来创建较小的 jpeg。有没有办法让它更快?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title of the document</title>
</head>
<body>
<button type="button" onclick="compress()">Try it</button>
<script>
function compress() {
maxWidth = 10000;
var source_img_obj = new Image;
source_img_obj.src = "base64pngimage dataurl"
var mime_type = "image/jpeg",
output_format = "jpeg";
maxWidth = maxWidth || 10000;
var natW = source_img_obj.naturalWidth;
var natH = source_img_obj.naturalHeight;
var ratio = natH / natW;
if (natW > maxWidth) {
natW = maxWidth;
natH = ratio * maxWidth;
}
var cvs = document.createElement('canvas');
cvs.width = natW;
cvs.height = natH;
var ctx = cvs.getContext("2d").drawImage(source_img_obj, 0, 0, natW, natH);
var newImageData = cvs.toDataURL(mime_type, 0.4);
var result_image_obj = new Image();
result_image_obj.src = newImageData;
console.log(newImageData);
}
</script>
</body>
</html>
如何提高这个函数的代码性能,.png转.jpeg时间太长
HTML5 Canvas 在这里不是首选,因为它处理较大的文件效率低下。 您可以使用sharp
库来实现与Javascript(Node.js后端)相同的功能。
sharp
- 高性能 Node.js 图像处理
- 调整 JPEG、PNG、WebP 和 TIFF 图像大小的最快模块
- 使用 libvips 库
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.