From faad6e82dbb0990c6dc4262a142e48bfed6b6fbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Am=C3=A9rico?= Date: Sat, 22 Dec 2018 22:21:42 -0300 Subject: [PATCH 1/4] Fix defining Mask for grayscale transparent PNG files --- lib/image/png.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/image/png.js b/lib/image/png.js index 0e9acfb..0b60cfa 100644 --- a/lib/image/png.js +++ b/lib/image/png.js @@ -49,10 +49,10 @@ class PNGImage { // For PNG color types 0, 2 and 3, the transparency data is stored in // a dedicated PNG chunk. - if (this.image.transparency.grayscale) { + if (this.image.transparency.grayscale != null) { // Use Color Key Masking (spec section 4.8.5) // An array with N elements, where N is two times the number of color components. - const val = this.image.transparency.greyscale; + const val = this.image.transparency.grayscale; return this.obj.data['Mask'] = [val, val]; } else if (this.image.transparency.rgb) { From 7c6134aa4e27a39437a3976cad90c1e46f60316e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Am=C3=A9rico?= Date: Sat, 22 Dec 2018 22:45:13 -0300 Subject: [PATCH 2/4] Add new png tests --- tests/images/glassware-noisy.png | Bin 0 -> 82829 bytes .../pngsuite-gray-transparent-black.png | Bin 0 -> 429 bytes .../pngsuite-gray-transparent-white.png | Bin 0 -> 1313 bytes .../pngsuite-palette-transparent-white.png | Bin 0 -> 1496 bytes .../images/pngsuite-rgb-transparent-white.png | Bin 0 -> 2041 bytes tests/unit/png.spec.js | 169 +++++++++++++++++- 6 files changed, 168 insertions(+), 1 deletion(-) create mode 100644 tests/images/glassware-noisy.png create mode 100644 tests/images/pngsuite-gray-transparent-black.png create mode 100644 tests/images/pngsuite-gray-transparent-white.png create mode 100644 tests/images/pngsuite-palette-transparent-white.png create mode 100644 tests/images/pngsuite-rgb-transparent-white.png diff --git a/tests/images/glassware-noisy.png b/tests/images/glassware-noisy.png new file mode 100644 index 0000000000000000000000000000000000000000..f4261631180e9cf66ded3fe76e874af31ccc4ca2 GIT binary patch literal 82829 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 literal 0 HcmV?d00001 diff --git a/tests/images/pngsuite-gray-transparent-black.png b/tests/images/pngsuite-gray-transparent-black.png new file mode 100644 index 0000000000000000000000000000000000000000..39a7050d27af28f3bcb7bfc6b071cae91f8c091b GIT binary patch literal 429 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 { const img = new PNGImage(fs.readFileSync(fileName), "I1"); // noop data manipulation methods img.loadIndexedAlphaChannel = () => { - if (img.image.hasAlphaChannel) { + if (img.image.transparency.indexed) { img.alphaChannel = {}; } }; @@ -59,6 +59,38 @@ describe("PNGImage", () => { }); }); + test("RGB white transparent", () => { + // ImageWidth = 32 + // ImageHeight = 32 + // BitDepth = 16 + // ColorType = 2 + // Compression = 0 + // Filter = 0 + // Interlace = 0 + + const img = createImage("./tests/images/pngsuite-rgb-transparent-white.png"); + + expect(img.obj.data).toMatchObject({ + BitsPerComponent: 16, + ColorSpace: "DeviceRGB", + Filter: "FlateDecode", + Height: 32, + Length: 1932, + Subtype: "Image", + Type: "XObject", + Width: 32, + Mask: [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255], + DecodeParms: expect.any(PDFReference) + }); + + expect(img.obj.data.DecodeParms.data).toMatchObject({ + BitsPerComponent: 16, + Colors: 3, + Columns: 32, + Predictor: 15 + }); + }); + test("RGB with Alpha", () => { // ImageWidth = 409 // ImageHeight = 400 @@ -129,6 +161,141 @@ describe("PNGImage", () => { }); }); + test("Pallete indexed transparency", () => { + // ImageWidth = 32 + // ImageHeight = 32 + // BitDepth = 8 + // ColorType = 3 + // Compression = 0 + // Filter = 0 + // Interlace = 0 + + const img = createImage("./tests/images/pngsuite-palette-transparent-white.png"); + + expect(img.obj.data).toMatchObject({ + BitsPerComponent: 8, + ColorSpace: ["Indexed", "DeviceRGB", 244, expect.any(PDFReference)], + Filter: "FlateDecode", + Height: 32, + Length: 650, + Subtype: "Image", + Type: "XObject", + Width: 32, + DecodeParms: expect.any(PDFReference), + SMask: expect.any(PDFReference), + }); + + expect(img.obj.data.DecodeParms.data).toMatchObject({ + BitsPerComponent: 8, + Colors: 1, + Columns: 32, + Predictor: 15 + }); + + expect(img.obj.data.SMask.data).toMatchObject({ + BitsPerComponent: 8, + ColorSpace: "DeviceGray", + Decode: [ + 0, + 1 + ], + Filter: "FlateDecode", + Height: 32, + Length: 16, + Subtype: "Image", + Type: "XObject", + Width: 32, + }); + }); + + test("Grayscale", () => { + // ImageWidth = 428 + // ImageHeight = 320 + // BitDepth = 8 + // ColorType = 0 + // Compression = 0 + // Filter = 0 + // Interlace = 0 + + const img = createImage("./tests/images/glassware-noisy.png"); + + expect(img.obj.data).toMatchObject({ + BitsPerComponent: 8, + ColorSpace: "DeviceGray", + Filter: "FlateDecode", + Height: 428, + Length: 82633, + Subtype: "Image", + Type: "XObject", + Width: 320, + DecodeParms: expect.any(PDFReference), + }); + }); + + test("Grayscale black transparent", () => { + // ImageWidth = 32 + // ImageHeight = 32 + // BitDepth = 4 + // ColorType = 0 + // Compression = 0 + // Filter = 0 + // Interlace = 0 + + const img = createImage("./tests/images/pngsuite-gray-transparent-black.png"); + + expect(img.obj.data).toMatchObject({ + BitsPerComponent: 4, + ColorSpace: "DeviceGray", + Filter: "FlateDecode", + Height: 32, + Length: 328, + Subtype: "Image", + Type: "XObject", + Width: 32, + Mask: [0, 0], + DecodeParms: expect.any(PDFReference), + }); + + expect(img.obj.data.DecodeParms.data).toMatchObject({ + BitsPerComponent: 4, + Colors: 1, + Columns: 32, + Predictor: 15 + }); + }); + + test("Grayscale white transparent", () => { + // ImageWidth = 32 + // ImageHeight = 32 + // BitDepth = 16 + // ColorType = 0 + // Compression = 0 + // Filter = 0 + // Interlace = 0 + + const img = createImage("./tests/images/pngsuite-gray-transparent-white.png"); + + expect(img.obj.data).toMatchObject({ + BitsPerComponent: 16, + ColorSpace: "DeviceGray", + Filter: "FlateDecode", + Height: 32, + Length: 1212, + Subtype: "Image", + Type: "XObject", + Width: 32, + Mask: [255, 255], + DecodeParms: expect.any(PDFReference), + }); + + expect(img.obj.data.DecodeParms.data).toMatchObject({ + BitsPerComponent: 16, + Colors: 1, + Columns: 32, + Predictor: 15 + }); + }); + test("Grayscale with Alpha", () => { // ImageWidth = 112 // ImageHeight = 112 From ffdda49bd63c0a50a9c1ea1789f0ee838424b79d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Am=C3=A9rico?= Date: Sun, 23 Dec 2018 00:44:10 -0300 Subject: [PATCH 3/4] Fix grayscale PNG images with alpha channel --- lib/image/png.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/image/png.js b/lib/image/png.js index 0b60cfa..c61eb63 100644 --- a/lib/image/png.js +++ b/lib/image/png.js @@ -109,7 +109,8 @@ class PNGImage { splitAlphaChannel() { return this.image.decodePixels(pixels => { let a, p; - const colorByteSize = (this.image.colors * this.image.bits) / 8; + const colorCount = this.image.colors; + const colorByteSize = (colorCount * this.image.bits) / 8; const pixelCount = this.width * this.height; const imgData = new Buffer(pixelCount * colorByteSize); const alphaChannel = new Buffer(pixelCount); @@ -117,9 +118,9 @@ class PNGImage { let i = p = a = 0; const len = pixels.length; while (i < len) { - imgData[p++] = pixels[i++]; - imgData[p++] = pixels[i++]; - imgData[p++] = pixels[i++]; + pixels.copy(imgData, p, i, i + colorCount); + p += colorCount; + i += colorCount; alphaChannel[a++] = pixels[i++]; } From acbeceb2b3bbdad3102b2cb0c2dadbf8fbfee8a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Am=C3=A9rico?= Date: Sun, 23 Dec 2018 20:30:40 -0300 Subject: [PATCH 4/4] Use a loop to copy png image data instead of Buffer.copy --- lib/image/png.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/image/png.js b/lib/image/png.js index c61eb63..7338c9b 100644 --- a/lib/image/png.js +++ b/lib/image/png.js @@ -118,9 +118,9 @@ class PNGImage { let i = p = a = 0; const len = pixels.length; while (i < len) { - pixels.copy(imgData, p, i, i + colorCount); - p += colorCount; - i += colorCount; + for (let colorIndex = 0; colorIndex < colorCount; colorIndex++) { + imgData[p++] = pixels[i++]; + } alphaChannel[a++] = pixels[i++]; }