37 lines
572 B
JavaScript
37 lines
572 B
JavaScript
import {
|
|
DataTextureLoader,
|
|
LinearFilter,
|
|
LinearMipmapLinearFilter
|
|
} from 'three';
|
|
|
|
import UTIF from '../libs/utif.module.js';
|
|
|
|
class TIFFLoader extends DataTextureLoader {
|
|
|
|
constructor( manager ) {
|
|
|
|
super( manager );
|
|
|
|
}
|
|
|
|
parse( buffer ) {
|
|
|
|
const ifds = UTIF.decode( buffer );
|
|
UTIF.decodeImage( buffer, ifds[ 0 ] );
|
|
const rgba = UTIF.toRGBA8( ifds[ 0 ] );
|
|
|
|
return {
|
|
width: ifds[ 0 ].width,
|
|
height: ifds[ 0 ].height,
|
|
data: rgba,
|
|
flipY: true,
|
|
magFilter: LinearFilter,
|
|
minFilter: LinearMipmapLinearFilter
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
export { TIFFLoader };
|