在处理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; } }

浙公网安备 33010602011771号