chore: add jimp dependency, icon padding script, and update configuration
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
||||
import { Jimp, mkJGD } from "@jimp/test-utils";
|
||||
import configure from "@jimp/custom";
|
||||
import flip from "../src";
|
||||
import { expectToBeJGD } from "@jimp/test-utils/src";
|
||||
const jimp = configure({
|
||||
plugins: [flip]
|
||||
}, Jimp);
|
||||
describe("Flipping plugin", () => {
|
||||
it("can flip horizontally", async () => {
|
||||
const src = await jimp.read(mkJGD("AAAABBBB", "AAABAAAB", "ABABABAB", "CCCCCCCC", "CCCCCCCC", "CCCCCCCC", "AACCCCAA"));
|
||||
const result = src.flip(true, false);
|
||||
expectToBeJGD(result.getJGDSync(), mkJGD("BBBBAAAA", "BAAABAAA", "BABABABA", "CCCCCCCC", "CCCCCCCC", "CCCCCCCC", "AACCCCAA"));
|
||||
});
|
||||
it("can flip vertically", async () => {
|
||||
const src = await jimp.read(mkJGD("AAAABBBB", "AAABAAAB", "ABABABAB", "CCCCCCCC", "CCCCCCCC", "CCCCCCCC", "AACCCCAA"));
|
||||
const result = src.flip(false, true);
|
||||
expectToBeJGD(result.getJGDSync(), mkJGD("AACCCCAA", "CCCCCCCC", "CCCCCCCC", "CCCCCCCC", "ABABABAB", "AAABAAAB", "AAAABBBB"));
|
||||
});
|
||||
it("can flip both horizontally and vertically at once", async () => {
|
||||
const src = await jimp.read(mkJGD("AAAABBBB", "AAABAAAB", "ABABABAB", "CCCCCCCC", "CCCCCCCC", "CCCCCCCC", "AACCCCAA"));
|
||||
const result = src.flip(true, true);
|
||||
expectToBeJGD(result.getJGDSync(), mkJGD("AACCCCAA", "CCCCCCCC", "CCCCCCCC", "CCCCCCCC", "BABABABA", "BAAABAAA", "BBBBAAAA"));
|
||||
});
|
||||
});
|
||||
//# sourceMappingURL=flipping.test.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"flipping.test.js","names":["Jimp","mkJGD","configure","flip","expectToBeJGD","jimp","plugins","describe","it","src","read","result","getJGDSync"],"sources":["../test/flipping.test.js"],"sourcesContent":["import { Jimp, mkJGD } from \"@jimp/test-utils\";\n\nimport configure from \"@jimp/custom\";\n\nimport flip from \"../src\";\nimport { expectToBeJGD } from \"@jimp/test-utils/src\";\n\nconst jimp = configure({ plugins: [flip] }, Jimp);\n\ndescribe(\"Flipping plugin\", () => {\n it(\"can flip horizontally\", async () => {\n const src = await jimp.read(\n mkJGD(\n \"AAAABBBB\",\n \"AAABAAAB\",\n \"ABABABAB\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"AACCCCAA\"\n )\n );\n\n const result = src.flip(true, false);\n\n expectToBeJGD(\n result.getJGDSync(),\n mkJGD(\n \"BBBBAAAA\",\n \"BAAABAAA\",\n \"BABABABA\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"AACCCCAA\"\n )\n );\n });\n\n it(\"can flip vertically\", async () => {\n const src = await jimp.read(\n mkJGD(\n \"AAAABBBB\",\n \"AAABAAAB\",\n \"ABABABAB\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"AACCCCAA\"\n )\n );\n\n const result = src.flip(false, true);\n\n expectToBeJGD(\n result.getJGDSync(),\n mkJGD(\n \"AACCCCAA\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"ABABABAB\",\n \"AAABAAAB\",\n \"AAAABBBB\"\n )\n );\n });\n\n it(\"can flip both horizontally and vertically at once\", async () => {\n const src = await jimp.read(\n mkJGD(\n \"AAAABBBB\",\n \"AAABAAAB\",\n \"ABABABAB\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"AACCCCAA\"\n )\n );\n\n const result = src.flip(true, true);\n\n expectToBeJGD(\n result.getJGDSync(),\n mkJGD(\n \"AACCCCAA\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"CCCCCCCC\",\n \"BABABABA\",\n \"BAAABAAA\",\n \"BBBBAAAA\"\n )\n );\n });\n});\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,KAAK,QAAQ,kBAAkB;AAE9C,OAAOC,SAAS,MAAM,cAAc;AAEpC,OAAOC,IAAI,MAAM,QAAQ;AACzB,SAASC,aAAa,QAAQ,sBAAsB;AAEpD,MAAMC,IAAI,GAAGH,SAAS,CAAC;EAAEI,OAAO,EAAE,CAACH,IAAI;AAAE,CAAC,EAAEH,IAAI,CAAC;AAEjDO,QAAQ,CAAC,iBAAiB,EAAE,MAAM;EAChCC,EAAE,CAAC,uBAAuB,EAAE,YAAY;IACtC,MAAMC,GAAG,GAAG,MAAMJ,IAAI,CAACK,IAAI,CACzBT,KAAK,CACH,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,CACX,CACF;IAED,MAAMU,MAAM,GAAGF,GAAG,CAACN,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;IAEpCC,aAAa,CACXO,MAAM,CAACC,UAAU,EAAE,EACnBX,KAAK,CACH,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,CACX,CACF;EACH,CAAC,CAAC;EAEFO,EAAE,CAAC,qBAAqB,EAAE,YAAY;IACpC,MAAMC,GAAG,GAAG,MAAMJ,IAAI,CAACK,IAAI,CACzBT,KAAK,CACH,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,CACX,CACF;IAED,MAAMU,MAAM,GAAGF,GAAG,CAACN,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC;IAEpCC,aAAa,CACXO,MAAM,CAACC,UAAU,EAAE,EACnBX,KAAK,CACH,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,CACX,CACF;EACH,CAAC,CAAC;EAEFO,EAAE,CAAC,mDAAmD,EAAE,YAAY;IAClE,MAAMC,GAAG,GAAG,MAAMJ,IAAI,CAACK,IAAI,CACzBT,KAAK,CACH,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,CACX,CACF;IAED,MAAMU,MAAM,GAAGF,GAAG,CAACN,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;IAEnCC,aAAa,CACXO,MAAM,CAACC,UAAU,EAAE,EACnBX,KAAK,CACH,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,CACX,CACF;EACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
import { isNodePattern, throwError } from "@jimp/utils";
|
||||
|
||||
/**
|
||||
* Flip the image horizontally
|
||||
* @param {boolean} horizontal a Boolean, if true the image will be flipped horizontally
|
||||
* @param {boolean} vertical a Boolean, if true the image will be flipped vertically
|
||||
* @param {function(Error, Jimp)} cb (optional) a callback for when complete
|
||||
* @returns {Jimp} this for chaining of methods
|
||||
*/
|
||||
function flipFn(horizontal, vertical, cb) {
|
||||
if (typeof horizontal !== "boolean" || typeof vertical !== "boolean") return throwError.call(this, "horizontal and vertical must be Booleans", cb);
|
||||
const bitmap = Buffer.alloc(this.bitmap.data.length);
|
||||
this.scanQuiet(0, 0, this.bitmap.width, this.bitmap.height, function (x, y, idx) {
|
||||
const _x = horizontal ? this.bitmap.width - 1 - x : x;
|
||||
const _y = vertical ? this.bitmap.height - 1 - y : y;
|
||||
const _idx = this.bitmap.width * _y + _x << 2;
|
||||
const data = this.bitmap.data.readUInt32BE(idx);
|
||||
bitmap.writeUInt32BE(data, _idx);
|
||||
});
|
||||
this.bitmap.data = Buffer.from(bitmap);
|
||||
if (isNodePattern(cb)) {
|
||||
cb.call(this, null, this);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
export default (() => ({
|
||||
flip: flipFn,
|
||||
mirror: flipFn
|
||||
}));
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["isNodePattern","throwError","flipFn","horizontal","vertical","cb","call","bitmap","Buffer","alloc","data","length","scanQuiet","width","height","x","y","idx","_x","_y","_idx","readUInt32BE","writeUInt32BE","from","flip","mirror"],"sources":["../src/index.js"],"sourcesContent":["import { isNodePattern, throwError } from \"@jimp/utils\";\n\n/**\n * Flip the image horizontally\n * @param {boolean} horizontal a Boolean, if true the image will be flipped horizontally\n * @param {boolean} vertical a Boolean, if true the image will be flipped vertically\n * @param {function(Error, Jimp)} cb (optional) a callback for when complete\n * @returns {Jimp} this for chaining of methods\n */\nfunction flipFn(horizontal, vertical, cb) {\n if (typeof horizontal !== \"boolean\" || typeof vertical !== \"boolean\")\n return throwError.call(\n this,\n \"horizontal and vertical must be Booleans\",\n cb\n );\n\n const bitmap = Buffer.alloc(this.bitmap.data.length);\n this.scanQuiet(\n 0,\n 0,\n this.bitmap.width,\n this.bitmap.height,\n function (x, y, idx) {\n const _x = horizontal ? this.bitmap.width - 1 - x : x;\n const _y = vertical ? this.bitmap.height - 1 - y : y;\n const _idx = (this.bitmap.width * _y + _x) << 2;\n const data = this.bitmap.data.readUInt32BE(idx);\n\n bitmap.writeUInt32BE(data, _idx);\n }\n );\n\n this.bitmap.data = Buffer.from(bitmap);\n\n if (isNodePattern(cb)) {\n cb.call(this, null, this);\n }\n\n return this;\n}\n\nexport default () => ({\n flip: flipFn,\n mirror: flipFn,\n});\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,aAAa;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,MAAM,CAACC,UAAU,EAAEC,QAAQ,EAAEC,EAAE,EAAE;EACxC,IAAI,OAAOF,UAAU,KAAK,SAAS,IAAI,OAAOC,QAAQ,KAAK,SAAS,EAClE,OAAOH,UAAU,CAACK,IAAI,CACpB,IAAI,EACJ,0CAA0C,EAC1CD,EAAE,CACH;EAEH,MAAME,MAAM,GAAGC,MAAM,CAACC,KAAK,CAAC,IAAI,CAACF,MAAM,CAACG,IAAI,CAACC,MAAM,CAAC;EACpD,IAAI,CAACC,SAAS,CACZ,CAAC,EACD,CAAC,EACD,IAAI,CAACL,MAAM,CAACM,KAAK,EACjB,IAAI,CAACN,MAAM,CAACO,MAAM,EAClB,UAAUC,CAAC,EAAEC,CAAC,EAAEC,GAAG,EAAE;IACnB,MAAMC,EAAE,GAAGf,UAAU,GAAG,IAAI,CAACI,MAAM,CAACM,KAAK,GAAG,CAAC,GAAGE,CAAC,GAAGA,CAAC;IACrD,MAAMI,EAAE,GAAGf,QAAQ,GAAG,IAAI,CAACG,MAAM,CAACO,MAAM,GAAG,CAAC,GAAGE,CAAC,GAAGA,CAAC;IACpD,MAAMI,IAAI,GAAI,IAAI,CAACb,MAAM,CAACM,KAAK,GAAGM,EAAE,GAAGD,EAAE,IAAK,CAAC;IAC/C,MAAMR,IAAI,GAAG,IAAI,CAACH,MAAM,CAACG,IAAI,CAACW,YAAY,CAACJ,GAAG,CAAC;IAE/CV,MAAM,CAACe,aAAa,CAACZ,IAAI,EAAEU,IAAI,CAAC;EAClC,CAAC,CACF;EAED,IAAI,CAACb,MAAM,CAACG,IAAI,GAAGF,MAAM,CAACe,IAAI,CAAChB,MAAM,CAAC;EAEtC,IAAIP,aAAa,CAACK,EAAE,CAAC,EAAE;IACrBA,EAAE,CAACC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EAC3B;EAEA,OAAO,IAAI;AACb;AAEA,gBAAe,OAAO;EACpBkB,IAAI,EAAEtB,MAAM;EACZuB,MAAM,EAAEvB;AACV,CAAC,CAAC"}
|
||||
Reference in New Issue
Block a user