[英]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.