diff --git a/src/core/jpg.js b/src/core/jpg.js index 619cf5c35..d9c49fa70 100644 --- a/src/core/jpg.js +++ b/src/core/jpg.js @@ -991,8 +991,10 @@ var JpegImage = (function JpegImageClosure() { var components = [], component; for (i = 0; i < selectorsCount; i++) { - var componentIndex = frame.componentIds[data[offset++]]; + const index = data[offset++]; + var componentIndex = frame.componentIds[index]; component = frame.components[componentIndex]; + component.index = index; var tableSpec = data[offset++]; component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; @@ -1088,6 +1090,7 @@ var JpegImage = (function JpegImageClosure() { } this.components.push({ + index: component.index, output: buildComponentData(frame, component), scaleX: component.h / frame.maxH, scaleY: component.v / frame.maxV, @@ -1183,6 +1186,14 @@ var JpegImage = (function JpegImageClosure() { // dictionary has a 'ColorTransform' entry, explicitly set to `0`, // then the colours should *not* be transformed. return false; + } else if ( + this.components[0].index === /* "R" = */ 0x52 && + this.components[1].index === /* "G" = */ 0x47 && + this.components[2].index === /* "B" = */ 0x42 + ) { + // If the three components are indexed as RGB in ASCII + // then the colours should *not* be transformed. + return false; } return true; } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 680b5a66a..4d463ddc9 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -147,6 +147,7 @@ !issue1055r.pdf !issue11713.pdf !issue1293r.pdf +!issue11931.pdf !issue1655r.pdf !issue6541.pdf !issue2948.pdf diff --git a/test/pdfs/issue11931.pdf b/test/pdfs/issue11931.pdf new file mode 100644 index 000000000..787bb7bf0 Binary files /dev/null and b/test/pdfs/issue11931.pdf differ diff --git a/test/test_manifest.json b/test/test_manifest.json index cb3b99ea7..b0b29be84 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -4367,6 +4367,12 @@ "type": "eq", "forms": true }, + { "id": "issue11931", + "file": "pdfs/issue11931.pdf", + "md5": "9ea233037992e1f10280420a49e72845", + "rounds": 1, + "type": "eq" + }, { "id": "annotation-button-widget-annotations", "file": "pdfs/annotation-button-widget.pdf", "md5": "5cf23adfff84256d9cfe261bea96dade",