< prev index next >

src/java.desktop/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java

Print this page

        

*** 1157,1171 **** imRas.getHeight(), 0, 0, destinationBands); } // Determine if all of the relevant output bands have the // 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++) { if (outputSampleSize[b] != bitDepth) { adjustBitDepths = true; break; } --- 1157,1179 ---- imRas.getHeight(), 0, 0, destinationBands); } + boolean tRNSTransparentPixelPresent = + theImage.getSampleModel().getNumBands() == inputBands + 1 && + metadata.hasTransparentColor(); // Determine if all of the relevant output bands have the // same bit depth as the source data boolean adjustBitDepths = false; int[] outputSampleSize = imRas.getSampleModel().getSampleSize(); ! int numBands; ! if (tRNSTransparentPixelPresent) { ! numBands = outputSampleSize.length - 1; ! } else { ! numBands = outputSampleSize.length; ! } for (int b = 0; b < numBands; b++) { if (outputSampleSize[b] != bitDepth) { adjustBitDepths = true; break; }
*** 1281,1293 **** * For PNG images of color type PNG_COLOR_RGB or PNG_COLOR_GRAY * that contain a specific transparent color (given by tRNS * chunk), we compare the decoded pixel color with the color * given by tRNS chunk to set the alpha on the destination. */ - boolean tRNSTransparentPixelPresent = - theImage.getSampleModel().getNumBands() == inputBands + 1 && - metadata.hasTransparentColor(); if (useSetRect && !tRNSTransparentPixelPresent) { imRas.setRect(updateMinX, dstY, passRow); } else { int newSrcX = srcX; --- 1289,1298 ----
< prev index next >