Keep planarized reference image around across runs

This commit is contained in:
Surma
2020-09-09 12:50:02 +01:00
parent 4b6334a212
commit ebdb00f50d
4 changed files with 113 additions and 89 deletions

View File

@@ -24,10 +24,16 @@ async function optimize(bitmapIn, encode, decode) {
let bitmapOut;
let binaryOut;
const { visdif } = await visdifModule();
const { VisDiff } = await visdifModule();
const comparator = new VisDiff(
bitmapIn.data,
bitmapIn.width,
bitmapIn.height
);
do {
binaryOut = await encode(bitmapIn, quality);
bitmapOut = await decode(binaryOut);
butteraugliDistance = comparator.distance(bitmapOut.data);
console.log({
butteraugliDistance,
quality,
@@ -35,12 +41,6 @@ async function optimize(bitmapIn, encode, decode) {
binaryOut,
bitmapOut
});
butteraugliDistance = visdif(
bitmapIn.data,
bitmapOut.data,
bitmapIn.width,
bitmapIn.height
);
if (butteraugliDistance > butteraugliGoal) {
quality += inc;
} else {
@@ -53,6 +53,8 @@ async function optimize(bitmapIn, encode, decode) {
attempts < maxRounds
);
comparator.delete();
return {
bitmap: bitmapOut,
binary: binaryOut,