mirror of
https://github.com/GoogleChromeLabs/squoosh.git
synced 2025-11-14 09:39:15 +00:00
wip
# Conflicts: # codecs/cpp.Dockerfile # codecs/imagequant/example.html # codecs/webp/dec/webp_dec.d.ts # codecs/webp/dec/webp_dec.js # codecs/webp/dec/webp_dec.wasm # codecs/webp/enc/webp_enc.d.ts # codecs/webp/enc/webp_enc.js # codecs/webp/enc/webp_enc.wasm # package-lock.json # package.json # src/codecs/tiny.webp # src_old/codecs/encoders.ts # src_old/codecs/processor-worker/tiny.avif # src_old/codecs/processor-worker/tiny.webp # src_old/codecs/tiny.webp # src_old/components/compress/index.tsx # src_old/lib/util.ts # src_old/sw/util.ts
This commit is contained in:
75
src_old/codecs/resize/processor-meta.ts
Normal file
75
src_old/codecs/resize/processor-meta.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
type BrowserResizeMethods =
|
||||
| 'browser-pixelated'
|
||||
| 'browser-low'
|
||||
| 'browser-medium'
|
||||
| 'browser-high';
|
||||
type WorkerResizeMethods =
|
||||
| 'triangle'
|
||||
| 'catrom'
|
||||
| 'mitchell'
|
||||
| 'lanczos3'
|
||||
| 'hqx';
|
||||
const workerResizeMethods: WorkerResizeMethods[] = [
|
||||
'triangle',
|
||||
'catrom',
|
||||
'mitchell',
|
||||
'lanczos3',
|
||||
'hqx',
|
||||
];
|
||||
|
||||
export type ResizeOptions =
|
||||
| BrowserResizeOptions
|
||||
| WorkerResizeOptions
|
||||
| VectorResizeOptions;
|
||||
|
||||
export interface ResizeOptionsCommon {
|
||||
width: number;
|
||||
height: number;
|
||||
fitMethod: 'stretch' | 'contain';
|
||||
}
|
||||
|
||||
export interface BrowserResizeOptions extends ResizeOptionsCommon {
|
||||
method: BrowserResizeMethods;
|
||||
}
|
||||
|
||||
export interface WorkerResizeOptions extends ResizeOptionsCommon {
|
||||
method: WorkerResizeMethods;
|
||||
premultiply: boolean;
|
||||
linearRGB: boolean;
|
||||
}
|
||||
|
||||
export interface VectorResizeOptions extends ResizeOptionsCommon {
|
||||
method: 'vector';
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether a set of options are worker resize options.
|
||||
*
|
||||
* @param opts
|
||||
*/
|
||||
export function isWorkerOptions(
|
||||
opts: ResizeOptions,
|
||||
): opts is WorkerResizeOptions {
|
||||
return (workerResizeMethods as string[]).includes(opts.method);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return whether a set of options are from the HQ<n>X set
|
||||
*
|
||||
* @param opts
|
||||
*/
|
||||
export function isHqx(opts: ResizeOptions): opts is WorkerResizeOptions {
|
||||
return opts.method === 'hqx';
|
||||
}
|
||||
|
||||
export const defaultOptions: ResizeOptions = {
|
||||
// Width and height will always default to the image size.
|
||||
// This is set elsewhere.
|
||||
width: 1,
|
||||
height: 1,
|
||||
// This will be set to 'vector' if the input is SVG.
|
||||
method: 'lanczos3',
|
||||
fitMethod: 'stretch',
|
||||
premultiply: true,
|
||||
linearRGB: true,
|
||||
};
|
||||
Reference in New Issue
Block a user