--- a/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java Thu Nov 15 14:14:31 2018 -0800
+++ b/src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java Tue Nov 20 14:37:24 2018 +0530
@@ -1163,8 +1163,7 @@
// same bit depth as the source data
boolean adjustBitDepths = false;
int[] outputSampleSize = imRas.getSampleModel().getSampleSize();
- int numBands = outputSampleSize.length;
- for (int b = 0; b < numBands; b++) {
+ for (int b = 0; b < inputBands; b++) {
if (outputSampleSize[b] != bitDepth) {
adjustBitDepths = true;
break;
@@ -1177,8 +1176,8 @@
if (adjustBitDepths) {
int maxInSample = (1 << bitDepth) - 1;
int halfMaxInSample = maxInSample/2;
- scale = new int[numBands][];
- for (int b = 0; b < numBands; b++) {
+ scale = new int[inputBands][];
+ for (int b = 0; b < inputBands; b++) {
int maxOutSample = (1 << outputSampleSize[b]) - 1;
scale[b] = new int[maxInSample + 1];
for (int s = 0; s <= maxInSample; s++) {
@@ -1304,7 +1303,7 @@
passRow.getPixel(newSrcX, 0, ps);
if (adjustBitDepths) {
- for (int b = 0; b < numBands; b++) {
+ for (int b = 0; b < inputBands; b++) {
ps[b] = scale[b][ps[b]];
}
}