vtf-js
Version:
A javascript IO library for the Valve Texture Format.
37 lines (36 loc) • 1.45 kB
TypeScript
import { VImageData, VPixelArray } from './image.js';
/** @see {@link Filter} */
export declare const VFilters: {
/** Point filtering - Always picks the nearest pixel when resampling. */
readonly Point: VFilter;
/** Triangle/bilinear filtering - Blends the four pixels surrounding a given point. */
readonly Triangle: VFilter;
/** Box filtering - Evenly blends in the four closest pixels. */
readonly Box: VFilter;
readonly Mitchell: VFilter;
readonly CatRom: VFilter;
/** Lanczos-3 filtering - A sinc filter that acts identically to Valve's NICE filter. */
readonly Lanczos3: VFilter;
};
/** Defines a filter that can be used to resize images. */
export interface VFilter {
kernel: (distance: number) => number;
radius: number;
}
interface CoeffsLine {
start: number;
coeffs: Float32Array;
}
export declare class VImageScaler {
readonly src_width: number;
readonly src_height: number;
readonly dest_width: number;
readonly dest_height: number;
readonly filter: VFilter;
coeffs_w: CoeffsLine[];
coeffs_h: CoeffsLine[];
constructor(src_width: number, src_height: number, dest_width: number, dest_height: number, filter: VFilter);
protected calc_coeffs(size1: number, size2: number, filter: VFilter, cache: Record<string, Float32Array>): CoeffsLine[];
resize<T extends VPixelArray>(src: VImageData<T>, dst: VImageData<T>): VImageData<T>;
}
export {};