当前位置: 首页 > news >正文

js实现webp转png/jpg

网上保存的图片是webp类型的,但是我把它嵌入flac格式的音频里后导致网页中无法播放
wps要会员,真麻烦。
完整代码:
 

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  
<meta charset="UTF-8">  
<meta name="viewport" content="width=device-width, initial-scale=1.0">  
<title>WebP to PNG Converter</title>  
<style>  .input-area {  margin-bottom: 10px;  }  .output-area {  margin-top: 10px;  }  
</style>  
</head>  
<body>  <div class="input-area">  <input type="file" id="webp-input" accept=".webp" onchange="javascript:preview()" /><div id="img-preview"></div><button onclick="convertWebp('image/png')">转换成png</button><button onclick="convertWebp('image/jpg')">转换成jpg</button>
</div>  <div class="output-area" id="output-area">  <!-- 下载链接将在这里动态生成 -->  
</div>  <script>  
function preview(){const imgContent = document.getElementById('img-preview');const file = document.getElementById("webp-input").files[0];imgContent.innerHTML = '';const img = document.createElement('img');img.src = URL.createObjectURL(file);imgContent.appendChild(img);img.onload = function() {URL.revokeObjectURL(this.src);}
}
function convertWebp(mimeType) {  const inputElement = document.getElementById('webp-input');  const file = inputElement.files[0];  if (!file) {  alert('Please select a WebP file first.');  return;  }  const reader = new FileReader();  reader.onload = function(event) {  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, img.width, img.height);  const pngUrl = canvas.toDataURL(mimeType);  const link = document.createElement('a');  link.href = pngUrl;if(mimeType === 'image/png'){link.download = 'converted.png';  }else if(mimeType === 'image/jpg'){link.download = 'converted.jpg';}document.getElementById('output-area').appendChild(link);  link.click(); // 触发下载  };  img.src = event.target.result;  };  reader.readAsDataURL(file);  
}  
</script>  </body>  
</html>

http://www.lryc.cn/news/337904.html

相关文章:

  • DVWA -File Upload-通关教程-完结
  • 中介者模式:简化对象间通信的协调者
  • 【Python系列】pydantic版本问题
  • 深度学习-多尺度训练的介绍与应用
  • 详解单文件组件
  • MLeaksFinder报错
  • 【心路历程】初次参加蓝桥杯实况
  • 微信小程序全屏开屏广告
  • 记录day1
  • stm32GPio的开发基础
  • DataSource
  • Linux防止暴力破解密码脚本
  • Unity 遮罩
  • jmeter实验 模拟:从CSV数据到加密请求到解密返回数据再到跨越线程组访问解密后的数据
  • 设计模式——外观(门面)模式10
  • 第七周周一人工智能导论预告
  • npm install 的不同选项:--save、--save-dev、-S、-D 的区别
  • 设计模式详解(十四)——策略模式
  • 【牛客SQL快速入门】SQL基础(二)
  • 利用Java代码调用Lua脚本改造分布式锁
  • 7/8电源连接器航空插头端子
  • 华为OD-C卷-游戏分组[100分]
  • 【c++】优先级队列|反向迭代器(vector|list)
  • gocron定时任务管理
  • JCYZ H3CNE-RS+
  • 太阳光光照试验耐久性老化试验使用太阳光模拟器系统
  • Centos 7.9.2009 下 Gitlab 完全卸载
  • Navicat Premium 16 for Mac/Win:数据库管理的全能之选
  • 使用腾讯云服务器如何搭建网站?新手建站教程
  • 抖音快手直播整蛊软件插件工具合集(多啦咪/梦歌)