结网  

在处理tif格式文件预览时,首先采用了utif这个js库,但是出现了个别文件渲染乱码的问题,几经排查最终改用了seikechi/tiff.js这个库,虽然比较老,但是好用,这个库可以利用文件blob实例一个tiff,再转为canvas,那接下来就好办了,通过canvas.toDataURL('image/jpeg')拿到url用于img标签,这样也避免了canvas的尺寸难以控制的问题,代码如下:

async function convertTiffToJpeg(tiffBlob: Blob) {
    try {
      const arrayBuffer = await tiffBlob.arrayBuffer();
      const tiff = new Tiff({ buffer: arrayBuffer });
      const canvas = tiff.toCanvas();
      return canvas.toDataURL('image/jpeg');
    } catch (error) {
      console.error('Error converting TIFF to JPEG:', error);
      return null;
    }
  }

 

posted on 2025-10-22 16:30  结网  阅读(44)  评论(0)    收藏  举报