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

纯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);
}

http://www.xdnf.cn/news/8282.html

相关文章:

  • 选择第三方软件检测机构做软件测试的三大原因
  • 从零开始学习QT——第二步
  • Rabbit MQ
  • CSS:vertical-align用法以及布局小案例(较难)
  • Spring AI Alibaba 调用文生语音模型(CosyVoice)
  • 基于labview的声音采集与存储分析系统
  • 深入浅出DDD:从理论到落地的关键
  • 海南藏族自治州政府门户网站集约化建设实践与动易解决方案应用
  • Java集合框架入门指南:从小白到基础掌握
  • 聚水潭ERP(奇门)集成用友ERP(用友U8、U9、NC、BIP、畅捷通T+、好业财)
  • 位图算法——判断唯一字符
  • 百度智能云千帆AppBuilder RAG流程技术文档
  • 佰力博科技与您探讨半导体电阻测试常用的一些方法
  • Qt 布局管理器的层级关系
  • 【I2C】高效实现I2C寄存器读取函数
  • 如何免费申请SSL证书并无限续期!
  • 使用Node开发需要知道的背景知识
  • 基于机器学习的策略开发和Backtrader回测
  • “2025香港国际法律服务大会探讨“跨法域 链全球”新格局”
  • 基于LangManus深入理解系统提示设计
  • Origin绘制多因子柱状点线图
  • 0x90属性中的属性名$I30和Scb->AttributeName的关系
  • day19-20-四剑客-find-grep-sed-awk
  • OpenCV CUDA 模块图像过滤-----创建一个计算图像导数的滤波器函数createDerivFilter()
  • 深入剖析小红书笔记详情接口:技术原理与实战应用
  • 技术篇-2.1.C\C++应用场景及开发工具安装
  • Python训练营打卡——DAY33(2025.5.22)
  • 并发编程之异步线程池
  • 【运维实战】Python打造基于免费API的IP地址归属地批量查询工具!
  • 5.0.6 TreeView的使用介绍