要在JavaScript中将JPEG图片转换为WebP格式,可以使用HTML5的Canvas API或者Node.js的webp-converter库。以下是两种方法的示例:
方法一:使用Canvas API读取JPEG图片:通过FileReader读取图片。绘制到Canvas:将图片绘制到Canvas上。转换为WebP:使用Canvas的toDataURL方法转换为WebP格式。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JPEG to WebP Conversion</title> </head> <body> <input type="file" id="upload" accept="image/jpeg"> <img id="output" alt="WebP Image"> <script> document.getElementById('upload').addEventListener('change', function(event) { const file = event.target.files[0]; const reader = new FileReader(); reader.onload = function(e) { const img = new Image(); img.onload = function() { const canvas = document.createElement('canvas'); canvas.width = img.width; canvas.height = img.height; const ctx = canvas.getContext('2d'); ctx.drawImage(img, 0, 0); const webpDataUrl = canvas.toDataURL('image/webp'); document.getElementById('output').src = webpDataUrl; }; img.src = e.target.result; }; reader.readAsDataURL(file); }); </script> </body> </html>方法二:使用Node.js的webp-converter库
安装库:
npm install webp-converter
转换图片:
const webp = require('webp-converter'); webp.cwebp("input.jpg", "output.webp", "-q 80", (status, error) => { if (status === 100) { console.log("Conversion successful"); } else { console.error("Conversion failed", error); } });
这两种方法分别适用于浏览器端和Node.js环境。选择适合你项目需求的方法进行实现。
网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?