private byte[] extractOverlay(int gg0000, WritableRaster raster) { Attributes attrs = metadata.getAttributes(); if (attrs.getInt(Tag.OverlayBitsAllocated | gg0000, 1) == 1) return null; int ovlyRows = attrs.getInt(Tag.OverlayRows | gg0000, 0); int ovlyColumns = attrs.getInt(Tag.OverlayColumns | gg0000, 0); int bitPosition = attrs.getInt(Tag.OverlayBitPosition | gg0000, 0); int mask = 1 << bitPosition; int length = ovlyRows * ovlyColumns; byte[] ovlyData = new byte[(((length + 7) >>> 3) + 1) & (~1)]; Overlays.extractFromPixeldata(raster, mask, ovlyData, 0, length); return ovlyData; }