javascript - 如何优化canvas图像并获取jpg而不是png

标签 javascript html canvas

<img id='imgt' src='01.jpg' alt='img'>

var img = document.getElementById("imgt");
    c1 = document.createElement("canvas");
    var ctx = c1.getContext("2d");

    var a = $('#imgt').width();
    var b = $('#imgt').height();

    c1.width = a;
    c1.height = b;
    ctx.drawImage(img, 0, 0, a, b);

因此生成的图像与源图像的尺寸相同,但它超过 1MB,而源图像小于 1MB。

源图像是 jpg,结果图像是 png

如何获取 jpg 而不是 png 以及如何优化 Web 生成的图像?

最佳答案

当您创建数据 URI 时,您可以指定

canvas.toDataURL("image/jpeg", 0.95); 

canvas.toBlob(function(blob){...}, 'image/jpeg', 0.95);

这将生成一个 JPG。只要确保您的图片是不透明的,否则背景会变成黑色。

关于javascript - 如何优化canvas图像并获取jpg而不是png,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42752326/

相关文章:

javascript - head.js 抛出属性 js 未找到错误

javascript - 为什么更改模型不会同时更改 EmberJS 中的 View ?

javascript - 我如何在 discord.js 中等待回复?

javascript - 使用 JavaScript 提交 HTML 表单

JavaScript:将内容附加为 nextSibling 的子级

javascript - 将对象从一个 Canvas 移动到另一 Canvas

javascript - js Symbol() 用法

javascript - 将工具提示 (div) 与文本 (span) 对齐。可能的?

javascript - 使用 Canvg 将 svg 转换为 png : "target.childnodes is undefined" error

math - 给定两个点,如何通过它们画一条线?