public Byte(ByteInterleavedRaster srcRas, ColorModel cm, AffineTransform xform, int maxw) : base(cm, xform, srcRas.Width, srcRas.Height, maxw) { this.SrcRas = srcRas; this.InData = srcRas.DataStorage; this.InSpan = srcRas.ScanlineStride; this.InOff = srcRas.getDataOffset(0); }
public ByteFilter(ByteInterleavedRaster srcRas, ColorModel cm, AffineTransform xform, int maxw) : base((cm.Transparency == Transparency_Fields.OPAQUE ? Xrgbmodel : Argbmodel), xform, srcRas.Width, srcRas.Height, maxw) { this.InPalette = new int[256]; ((IndexColorModel)cm).GetRGBs(this.InPalette); this.SrcRas = srcRas; this.InData = srcRas.DataStorage; this.InSpan = srcRas.ScanlineStride; this.InOff = srcRas.getDataOffset(0); }
public override WritableRaster MakeRaster(int w, int h) { WritableRaster ras = MakeByteRaster(SrcRas, w, h); ByteInterleavedRaster biRas = (ByteInterleavedRaster)ras; OutData = biRas.DataStorage; OutSpan = biRas.ScanlineStride; OutOff = biRas.getDataOffset(0); return(ras); }
public static PaintContext GetContext(BufferedImage bufImg, AffineTransform xform, RenderingHints hints, Rectangle devBounds) { WritableRaster raster = bufImg.Raster; ColorModel cm = bufImg.ColorModel; int maxw = devBounds.Width_Renamed; Object val = hints[RenderingHints.KEY_INTERPOLATION]; bool filter = (val == null ? (hints[RenderingHints.KEY_RENDERING] == RenderingHints.VALUE_RENDER_QUALITY) : (val != RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR)); if (raster is IntegerInterleavedRaster && (!filter || IsFilterableDCM(cm))) { IntegerInterleavedRaster iir = (IntegerInterleavedRaster)raster; if (iir.NumDataElements == 1 && iir.PixelStride == 1) { return(new Int(iir, cm, xform, maxw, filter)); } } else if (raster is ByteInterleavedRaster) { ByteInterleavedRaster bir = (ByteInterleavedRaster)raster; if (bir.NumDataElements == 1 && bir.PixelStride == 1) { if (filter) { if (IsFilterableICM(cm)) { return(new ByteFilter(bir, cm, xform, maxw)); } } else { return(new Byte(bir, cm, xform, maxw)); } } } return(new Any(raster, cm, xform, maxw, filter)); }