Removed built
This commit is contained in:
parent
3bf585193f
commit
b178975581
2 changed files with 0 additions and 52 deletions
4
built/index.d.ts
vendored
4
built/index.d.ts
vendored
|
@ -1,4 +0,0 @@
|
||||||
/// <reference types="node" />
|
|
||||||
/// <reference types="node" />
|
|
||||||
import sharp from 'sharp';
|
|
||||||
export declare function sharpBmp(source: Buffer | Int8Array | Uint8Array | Uint8ClampedArray | string, type: string, options?: sharp.SharpOptions): Promise<sharp.Sharp>;
|
|
|
@ -1,48 +0,0 @@
|
||||||
import sharp from 'sharp';
|
|
||||||
import decodeIco from 'decode-ico';
|
|
||||||
import decodeBmp from 'decode-bmp';
|
|
||||||
import { readFile } from 'node:fs/promises';
|
|
||||||
export async function sharpBmp(source, type, options = {}) {
|
|
||||||
if (type === 'image/x-icon' || type === 'image/vnd.microsoft.icon') {
|
|
||||||
const icon = decodeIco(typeof source === 'string' ? await readFile(source, { encoding: null }) : source);
|
|
||||||
// Choose the largest icon
|
|
||||||
const chosen = icon.reduce((prev, curr) => {
|
|
||||||
const prevSize = prev.width * prev.height;
|
|
||||||
const currSize = curr.width * curr.height;
|
|
||||||
if (prevSize < currSize) {
|
|
||||||
// Larger icon
|
|
||||||
return curr;
|
|
||||||
}
|
|
||||||
else if (prevSize === currSize && curr.type === 'png') {
|
|
||||||
// PNG is preferred over BMP
|
|
||||||
return curr;
|
|
||||||
}
|
|
||||||
return prev;
|
|
||||||
}, icon[0]);
|
|
||||||
if (chosen.type === 'png') {
|
|
||||||
return sharp(chosen.data, options);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return sharp(chosen.data, {
|
|
||||||
...options,
|
|
||||||
raw: {
|
|
||||||
width: chosen.width,
|
|
||||||
height: chosen.height,
|
|
||||||
channels: 4,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (type === 'image/x-bmp' || type === 'image/bmp' || type === 'image/x-ms-bmp') {
|
|
||||||
const bmp = decodeBmp(typeof source === 'string' ? await readFile(source, { encoding: null }) : source);
|
|
||||||
return sharp(bmp.data, {
|
|
||||||
...options,
|
|
||||||
raw: {
|
|
||||||
width: bmp.width,
|
|
||||||
height: bmp.height,
|
|
||||||
channels: 4,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return sharp(source, options);
|
|
||||||
}
|
|
Loading…
Reference in a new issue