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

纯JS前端转图片成tiff格式

1. 引用js类库【UTIF.min.js】

2. 方法

async function DownTiffPic(imageUrl,skuId)
{try{// 执行转换const tiffBlob = await ConvertPngToTiff(imageUrl);// 下载文件DownloadBlob(tiffBlob, skuId + '.tiff');} catch (error){console.error('转换失败:', error);alert('转换失败: ' + error.message);}
}async function ConvertPngToTiff(url)
{// 1. 加载图片const img = await LoadImage(url);// 2. 绘制到canvas获取像素数据const canvas = document.createElement('canvas');canvas.width = img.naturalWidth;canvas.height = img.naturalHeight;const ctx = canvas.getContext('2d');ctx.drawImage(img, 0, 0);// 3. 获取图像数据const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);// 4. 使用UTIF.js编码为TIFFconst tiffData = UTIF.encodeImage(imageData.data,canvas.width,canvas.height);// 5. 转换为Blobreturn new Blob([tiffData], { type: 'image/tiff' });
}function LoadImage(url)
{return new Promise((resolve, reject) =>{const img = new Image();img.crossOrigin = 'Anonymous'; // 处理跨域img.onload = () => resolve(img);img.onerror = (err) => reject(new Error('图片加载失败'));img.src = url;});
}function DownloadBlob(blob, fileName)
{const url = URL.createObjectURL(blob);const a = document.createElement('a');a.href = url;a.download = fileName;document.body.appendChild(a);a.click();document.body.removeChild(a);setTimeout(() => URL.revokeObjectURL(url), 100);
}

相关文章:

  • Java中创建线程的几种方式
  • Nginx 部署前端项目dist文件到局域网然后ngrok部署到公网
  • python打卡day33
  • w~自动驾驶~合集13
  • 深度学习零基础入门(2)-实战1:激活函数、前向传播和反向传播
  • 巧用 FFmpeg 命令行合并多个视频为一个视频文件教程
  • Vue3+Vite+TypeScript项目中跨页多选表格的实现与应用
  • 进阶知识:用例依赖装饰器的实现方法的 代码细节问题解析
  • 栈与队列part01(二)
  • 服务架构演变过程
  • Java——集合类
  • 开闭原则 (Open/Closed Principle, OCP)
  • 如何让 Agent 有计划地进行股票数据分析?——基于 DeepSeek 的实战应用
  • ext2文件系统详讲
  • HashMap的hash方法是如何实现的
  • Vue 3.0中自定义指令
  • 【Python socket模块深度解析】网络通信的核心工具
  • 使用pm2 部署react+nextjs项目到服务器
  • 【IC_Design】跨时钟域的寄存器更新后锁存
  • RK3588 RGA 测试
  • 昆明网站建设兼职/北京做网站推广
  • 做慕课的网站/性价比高的seo网站优化
  • wordpress url参数/seo 是什么
  • 玩具网站设计/中国十大电商平台有哪些
  • 开发小程序定制公司/衡阳有实力seo优化
  • 建设网站需要用到哪些软件/枣庄网站建设制作