From e3bef7d1a6aee1c66024de8fd6b7ed5c5db37706 Mon Sep 17 00:00:00 2001 From: Xin-Xin Wang Date: Wed, 15 Feb 2017 12:19:32 -0500 Subject: [PATCH] Fix issue #65 (single pixel png causes an error) (#72) --- lib/bitmapper.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/bitmapper.js b/lib/bitmapper.js index 8d79d26..4ba5d76 100644 --- a/lib/bitmapper.js +++ b/lib/bitmapper.js @@ -105,10 +105,15 @@ function mapImage8Bit(image, pxData, getPxPos, bpp, data, rawPos) { // eslint-di for (var i = 0; i < 4; i++) { var idx = pixelBppMap[bpp][i]; - if (i === data.length) { - throw new Error('Ran out of data'); + if (idx === 0xff) { + pxData[pxPos + i] = 0xff; + } else { + var dataPos = idx + rawPos; + if (dataPos === data.length) { + throw new Error('Ran out of data'); + } + pxData[pxPos + i] = data[dataPos]; } - pxData[pxPos + i] = idx !== 0xff ? data[idx + rawPos] : 0xff; } rawPos += bpp; //eslint-disable-line no-param-reassign }