js上传图片前改变图片的格式为png

// 将图片转换为 PNG 格式 const convertImageToPng = (file: File): Promise<File> => { return new Promise((resolve, reject) => { const reader = new FileReader() reader.onload = (e) => { const img = new window.Image() img.onload = () => { // 创建 canvas const canvas = document.createElement('canvas') canvas.width = img.width canvas.height = img.height // 绘制图片到 canvas const ctx = canvas.getContext('2d') if (!ctx) { reject(new Error('无法获取 canvas context')) return } ctx.drawImage(img, 0, 0) // 转换为 PNG blob canvas.toBlob( (blob) => { if (!blob) { reject(new Error('图片转换失败')) return } // 创建新的 File 对象 const pngFile = new File( [blob], file.name.replace(/\.[^.]+$/, '.png'), { type: 'image/png', } ) resolve(pngFile) }, 'image/png', 1.0 ) } img.onerror = () => reject(new Error('图片加载失败')) img.src = e.target?.result as string } reader.onerror = () => reject(new Error('文件读取失败')) reader.readAsDataURL(file) }) } // 上传图片到七牛云 const handleImageUpload = async (e: React.ChangeEvent<HTMLInputElement>) => { const files = e.target.files if (!files || files.length === 0 || !qiniuToken) return const file = files[0] try { // 将图片转换为 PNG 格式 const pngFile = await convertImageToPng(file) const formData = new FormData() const key = `ai/mjBaseImg/${Date.now()}_${pngFile.name}` formData.append('file', pngFile) formData.append('token', qiniuToken) formData.append('key', key) const response = await fetch('https://upload-z1.qiniup.com', { method: 'POST', body: formData, }) const result = await response.json() if (result.code === 200) { const imageUrl = `https://static.xutongbao.top/${result.data.key}` setUploadedImages((prev) => [...prev, imageUrl]) } } catch (error) { console.error('上传失败:', error) } // 清空 input,允许重复选择同一文件 e.target.value = '' }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1174724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11.3 可靠性工程与测试验证:构建可信赖的机器人系统

11.3 可靠性工程与测试验证:构建可信赖的机器人系统 11.3.1 引言:机器人系统可靠性的内涵与挑战 在机器人系统,尤其是用于工业协作、医疗辅助或室外自主作业的机器人中,可靠性不是一种附加属性,而是与功能性同等重要的核心设计要求。可靠性工程旨在通过系统化的设计、分…

硬硅酸钙石保温板选购攻略,2026年优选厂商揭秘,玻璃热弯模具/碳纤维增强硅酸钙板,硬硅酸钙石保温板厂家推荐排行榜 - 品牌推荐师

行业背景与市场趋势分析 随着“双碳”目标推进,工业领域对高效隔热材料的需求持续攀升。硬硅酸钙石保温板凭借耐高温(可达1000℃)、低导热系数(≤0.05W/mK)、抗腐蚀等特性,成为冶金、电力、玻璃制造等行业的优选…

2026年汽车后视镜热弯模具优选厂家,实力品牌大揭秘,铝行业精炼用热鼎盘,汽车后视镜热弯模具实力厂家排行 - 品牌推荐师

引言:行业现状与模具核心价值 随着新能源汽车与智能驾驶技术的快速发展,汽车后视镜的设计需求正从单一功能性向轻量化、高强度、复杂曲面造型方向迭代。作为后视镜生产的核心工艺装备,热弯模具的技术水平直接影响产…

2026年汽车后视镜热弯模具优选厂家,实力品牌大揭秘,铝行业精炼用热鼎盘,汽车后视镜热弯模具实力厂家排行 - 品牌推荐师

引言:行业现状与模具核心价值 随着新能源汽车与智能驾驶技术的快速发展,汽车后视镜的设计需求正从单一功能性向轻量化、高强度、复杂曲面造型方向迭代。作为后视镜生产的核心工艺装备,热弯模具的技术水平直接影响产…

12.1 全身动力学与任务空间控制:基于零空间投影的层级化任务实现

12.1 全身动力学与任务空间控制:基于零空间投影的层级化任务实现 12.1.1 引言:人形机器人全身控制的范式转变 传统工业机械臂的控制通常围绕单一的末端执行器任务(如轨迹跟踪)展开,其控制目标明确且自由度有限。然而,人形机器人是一个具有高度运动冗余(通常拥有30个以…

XMLHttpRequest 从入门到实战:GET/POST 请求完整案例

一、前言 在前后端分离开发模式中&#xff0c;AJAX 是实现页面无刷新数据交互的核心技术&#xff0c;而 XMLHttpRequest&#xff08;简称 XHR&#xff09;正是浏览器原生支持的 AJAX 底层 API。 相比于现代的 fetch 和 Axios&#xff0c;XMLHttpRequest 兼容性更好&#xff0…

XMLHttpRequest 从入门到实战:GET/POST 请求完整案例

一、前言 在前后端分离开发模式中&#xff0c;AJAX 是实现页面无刷新数据交互的核心技术&#xff0c;而 XMLHttpRequest&#xff08;简称 XHR&#xff09;正是浏览器原生支持的 AJAX 底层 API。 相比于现代的 fetch 和 Axios&#xff0c;XMLHttpRequest 兼容性更好&#xff0…

全栈分页方案:MyBatisPlus后端与Thymeleaf前端深度整合指南 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

国内MBR平板膜优选指南:2026年靠谱企业榜单,超滤MBR膜/熔喷滤芯/国产MBR膜,MBR平板膜产品推荐榜 - 品牌推荐师

行业现状与MBR平板膜核心价值 随着环保政策趋严及污水处理需求升级,MBR(膜生物反应器)技术凭借高效截留、出水水质稳定、占地面积小等优势,成为市政、工业废水处理领域的核心工艺。其中,MBR平板膜因抗污染性强、膜…

国内MBR平板膜优选指南:2026年靠谱企业榜单,超滤MBR膜/熔喷滤芯/国产MBR膜,MBR平板膜产品推荐榜 - 品牌推荐师

行业现状与MBR平板膜核心价值 随着环保政策趋严及污水处理需求升级,MBR(膜生物反应器)技术凭借高效截留、出水水质稳定、占地面积小等优势,成为市政、工业废水处理领域的核心工艺。其中,MBR平板膜因抗污染性强、膜…

11.2 系统集成与调试:从组件验证到整机性能交付

11.2 系统集成与调试:从组件验证到整机性能交付 11.2.1 引言:集成调试的定义与系统工程视角 在机器人开发流程中,当各子系统(如执行器、传感器、控制器、软件模块)的独立功能验证完成后,便进入系统集成与调试阶段。此阶段的核心目标,是将这些离散的组件整合为一个协调…

【2026实测】HostDare CN2 GIA VPS:高性价比稳如老狗,内附隐藏福利与避坑指南

如果你正在寻找一台具有美国IP&#xff0c;既能从国内稳定访问&#xff0c;又能跑 AI 代理&#xff08;Cliproxy/NewAPI&#xff09;&#xff0c;还要支持支付宝付款的高性价比 VPS&#xff0c;那么 HostDare 绝对是 2026 年绕不开的选择。 作为一名折腾了无数 VPS 的老玩家&a…

day3 补

day3 补Leetcode 203 删除链表节点 感觉使用虚拟头节点方便理解,如果不使用虚拟头节点需要单独写一段处理头节点的代码 class Solution { public:ListNode* removeElements(ListNode* head, int val) {ListNode* dumm…

无感BLDC控制:反电动势滤波实战

目录 一、核心原理&#xff1a;无传感器 BLDC 与反电动势检测 1. BLDC 无传感器控制的核心逻辑 2. 反电动势获取方式 3. 关键滤波需求 二、反电动势常用滤波方法&#xff08;硬件 软件&#xff09; 1. 硬件滤波&#xff08;前置处理&#xff09; 2. 软件滤波&#xff0…

2026滤芯市场新动向:哪些滤芯工厂值得选?进口MBR平板膜/0.5um滤芯/新能源行业树脂,滤芯厂商哪家好 - 品牌推荐师

随着环保政策持续收紧与工业用水需求升级,滤芯作为水处理与废气治理的核心耗材,其品质与供应链稳定性直接影响项目合规性与运行成本。据行业统计,2025年国内滤芯市场规模突破120亿元,年复合增长率达8.7%,但市场集…

大数据领域分布式计算的性能优化策略

大数据分布式计算性能优化&#xff1a;从“堵车”到“通途”的系统调校指南 关键词 分布式计算、性能优化、数据本地化、资源调度、Shuffle优化、并行度调整、容错机制 摘要 当你用分布式集群处理100TB日志时&#xff0c;有没有遇到过这样的场景&#xff1a;任务卡了6小时还没跑…

Product Trick

Cookie Distribution 模拟赛出了 Product Trick,来学一下。 考虑到 \(\prod c_i\) 等于从 \(n\) 个孩子每人手中选出一个饼干的方案数。 设状态 \(f_{i,j}\) 表示前 \(i\) 天,有 \(j\) 个孩子已经得到了最终被选出的…

交易平台如何优化合约交易体验WEEX一种交互与机制设计的行业观察

在数字资产交易领域&#xff0c;合约交易因其高波动性&#xff0c;对交易体验与风险管理提出了更高要求。近年来&#xff0c;一些交易平台开始从产品设计角度入手&#xff0c;尝试通过界面与机制调整&#xff0c;降低操作复杂度&#xff0c;提高交易过程中的可控性。从公开资料…

AI销冠系统是什么?数字员工在提升企业效率中的关键作用是什么?

数字员工的引入使企业在优化业务流程、降低成本和提升效率方面取得显著成效。通过AI销冠系统&#xff0c;这些数字员工可以快速执行大规模外呼任务&#xff0c;负责与客户进行有效沟通。这种自动化的操作不仅大幅减少了人工座席的需求&#xff0c;还降低了招聘和培训相关的开支…