diff --git a/src/SixelEncoder.ts b/src/SixelEncoder.ts index 71addf1..415922e 100644 --- a/src/SixelEncoder.ts +++ b/src/SixelEncoder.ts @@ -91,11 +91,14 @@ function processBand( // skip expensive color to palette matching if we have same color as before if (color !== oldColor) { oldColor = color; - idx = alpha(color) ? colorMap.get(color) || 0 : 0; - if (idx === undefined) { + let maybeIDX = alpha(color) ? colorMap.get(color) : 0; + if (maybeIDX === undefined) { idx = nearestColorIndex(color, paletteRGB) + 1; colorMap.set(color, idx); } + else { + idx = maybeIDX; + } // extend accu/code handling to new color if (slots[idx] === -1) { targets.push([]);