private void readtRNS() throws IOException {
        switch (colorType) {
            case COLOR_GREYSCALE:
                checkChunkLength(2);
                transPixel = new byte[2];
                readChunk(transPixel, 0, 2);
                break;
            case COLOR_TRUECOLOR:
                checkChunkLength(6);
                transPixel = new byte[6];
                readChunk(transPixel, 0, 6);
                break;
            case COLOR_INDEXED:
                if(palette == null) {
                    throw new IOException("tRNS chunk without PLTE chunk");
                }
                paletteA = new byte[palette.length/3];
                Arrays.fill(paletteA, (byte)0xFF);
                readChunk(paletteA, 0, paletteA.length);
                break;
            default:
                // just ignore it
        }
    }