react utif tif格式图片预览
1、npm install @types/utif --save-dev
2、import { decode, decodeImage,toRGBA8} from 'utif';
3、
export const GetFile = (url: string, id: string, type?: number) => {
return new Promise(function (resolve, reject) {
var xhr = new XMLHttpRequest();
url += '?id=' + id + '';
xhr.open('GET', url, true);
xhr.responseType = 'arraybuffer';
xhr.onload = (e) => {
if (xhr.status === 200) {
try {
let imgInfo = decode(xhr.response)[0];
decodeImage(xhr.response,imgInfo);
let imgToRGBA8 = toRGBA8(imgInfo);
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.width = imgInfo.width;
canvas.height =imgInfo.height;
var imageData = context.createImageData(imgInfo.width, imgInfo.height);
imageData.data.set(imgToRGBA8);
context.putImageData(imageData, 0, 0);
let result=canvas.toDataURL("image/png");
resolve(result);
} catch (error) {
reject(new Error(error));
}
} else {
reject(new Error('图片获取失败'));
}
};
xhr.send();
}).catch((e) => {
return e;
});
};