chore: add jimp dependency, icon padding script, and update configuration
This commit is contained in:
+50
@@ -0,0 +1,50 @@
|
||||
import BMP from "bmp-js";
|
||||
import { scan } from "@jimp/utils";
|
||||
const MIME_TYPE = "image/bmp";
|
||||
const MIME_TYPE_SECOND = "image/x-ms-bmp";
|
||||
function toAGBR(image) {
|
||||
return scan(image, 0, 0, image.bitmap.width, image.bitmap.height, function (x, y, index) {
|
||||
const red = this.bitmap.data[index + 0];
|
||||
const green = this.bitmap.data[index + 1];
|
||||
const blue = this.bitmap.data[index + 2];
|
||||
const alpha = this.bitmap.data[index + 3];
|
||||
this.bitmap.data[index + 0] = alpha;
|
||||
this.bitmap.data[index + 1] = blue;
|
||||
this.bitmap.data[index + 2] = green;
|
||||
this.bitmap.data[index + 3] = red;
|
||||
}).bitmap;
|
||||
}
|
||||
function fromAGBR(bitmap) {
|
||||
return scan({
|
||||
bitmap
|
||||
}, 0, 0, bitmap.width, bitmap.height, function (x, y, index) {
|
||||
const alpha = this.bitmap.data[index + 0];
|
||||
const blue = this.bitmap.data[index + 1];
|
||||
const green = this.bitmap.data[index + 2];
|
||||
const red = this.bitmap.data[index + 3];
|
||||
this.bitmap.data[index + 0] = red;
|
||||
this.bitmap.data[index + 1] = green;
|
||||
this.bitmap.data[index + 2] = blue;
|
||||
this.bitmap.data[index + 3] = bitmap.is_with_alpha ? alpha : 0xff;
|
||||
}).bitmap;
|
||||
}
|
||||
const decode = data => fromAGBR(BMP.decode(data));
|
||||
const encode = image => BMP.encode(toAGBR(image)).data;
|
||||
export default (() => ({
|
||||
mime: {
|
||||
[MIME_TYPE]: ["bmp"]
|
||||
},
|
||||
constants: {
|
||||
MIME_BMP: MIME_TYPE,
|
||||
MIME_X_MS_BMP: MIME_TYPE_SECOND
|
||||
},
|
||||
decoders: {
|
||||
[MIME_TYPE]: decode,
|
||||
[MIME_TYPE_SECOND]: decode
|
||||
},
|
||||
encoders: {
|
||||
[MIME_TYPE]: encode,
|
||||
[MIME_TYPE_SECOND]: encode
|
||||
}
|
||||
}));
|
||||
//# sourceMappingURL=index.js.map
|
||||
Reference in New Issue
Block a user