js 图片格式png转jpg
时间: 2024-09-24 19:20:08 浏览: 65
js+canvas实现图片格式webp/png/jpeg在线转换
在JavaScript中,直接将图片从PNG格式转换为JPG格式通常不是原生支持的。这是因为浏览器和Node.js环境并不提供内置的API来进行这样的格式转换。不过,你可以借助一些第三方库,如`sharp`(对于服务器端),或者前端的`html2canvas`、`toImageBitmap`配合Canvas API(在浏览器环境下)来实现这个功能。
以下是使用`sharp`库的一个例子(在Node.js服务器端):
```javascript
const sharp = require('sharp');
// 加载PNG文件
sharp('input.png')
.then(function (image) {
// 转换为JPEG并保存
return image.toFormat('jpeg', { quality: 0.8 }); // 可调整质量,范围0-1
})
.then(function (outputBuffer) {
fs.writeFileSync('output.jpg', outputBuffer); // 输出到新的JPEG文件
})
.catch(function (err) {
console.error(err);
});
```
在浏览器环境中,可以先获取到图片的`dataURL`,然后创建一个新的`Image`对象,利用它的`src`属性设置为转换后的`dataURL`:
```javascript
function pngToJpg(pngDataUrl, callback) {
var img = new Image();
img.src = 'data:image/png;base64,' + atob(pngDataUrl.replace('data:image/png;base64,', ''));
img.onload = function() {
canvas.getContext('2d').drawImage(img, 0, 0);
var jpgDataUrl = canvas.toDataURL('image/jpeg');
callback(jpgDataUrl);
};
}
```
阅读全文