public static RenderedImage getShutterOverlay(Attributes attributes, int frameIndex, int width, int height, int shuttOverlayGroup) throws IOException { IndexColorModel icm = new IndexColorModel(1, icmColorValues.length, icmColorValues, icmColorValues, icmColorValues, 0); BufferedImage overBi = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_BINARY, icm); Overlays.applyOverlay(frameIndex, overBi.getRaster(), attributes, shuttOverlayGroup - 0x6000, 1, null); return overBi; }
Overlays.applyOverlay(ovlyData != null ? 0 : frameIndex, raster, attributes, overlayGroupOffsets[i], grayscaleValue >>> (16 - outBits), ovlyData); Overlays.applyOverlay(frameIndex, raster, ovlyAttrs, overlayGroupOffsets[i], grayscaleValue >>> (16 - outBits), null);
private void applyOverlay(int gg0000, WritableRaster raster, int frameIndex, ImageReadParam param, int outBits, byte[] ovlyData) { Attributes ovlyAttrs = metadata.getAttributes(); int grayscaleValue = 0xffff; if (param instanceof DicomImageReadParam) { DicomImageReadParam dParam = (DicomImageReadParam) param; Attributes psAttrs = dParam.getPresentationState(); if (psAttrs != null) { if (psAttrs.containsValue(Tag.OverlayData | gg0000)) ovlyAttrs = psAttrs; grayscaleValue = Overlays.getRecommendedDisplayGrayscaleValue( psAttrs, gg0000); } else grayscaleValue = dParam.getOverlayGrayscaleValue(); } Overlays.applyOverlay(ovlyData != null ? 0 : frameIndex, raster, ovlyAttrs, gg0000, grayscaleValue >>> (16-outBits), ovlyData); }