private SampleModel getMPSampleModel(int tileWidth, int tileHeight) { SampleModel sampleModel; if ((tileWidth == ROIExcessGranuleRemover.DEFAULT_TILE_SIZE) && (tileHeight == ROIExcessGranuleRemover.DEFAULT_TILE_SIZE)) { sampleModel = DEFAULT_PACKED_SAMPLE_MODEL; } else { String key = tileWidth + "x" + tileHeight; sampleModel = mpSampleModelCache.get(key); if (sampleModel == null) { sampleModel = new MultiPixelPackedSampleModel( DataBuffer.TYPE_BYTE, tileWidth, tileHeight, 1); mpSampleModelCache.put(key, (MultiPixelPackedSampleModel) sampleModel); } } return sampleModel; }
new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, origW, origH, 1);
public static ImageTypeSpecifier createPackedGrayscale(final ColorSpace colorSpace, final int bits, final int dataType) { notNull(colorSpace, "colorSpace"); isTrue(colorSpace.getType() == ColorSpace.TYPE_GRAY, colorSpace, "ColorSpace must be TYPE_GRAY"); isTrue(bits == 1 || bits == 2 || bits == 4, bits, "bits must be 1, 2, or 4: %s"); isTrue(dataType == DataBuffer.TYPE_BYTE, dataType, "dataType must be TYPE_BYTE: %s"); int numEntries = 1 << bits; byte[] arr = new byte[numEntries]; byte[] arg = new byte[numEntries]; byte[] arb = new byte[numEntries]; // Scale array values according to color profile.. for (int i = 0; i < numEntries; i++) { float[] gray = new float[]{i / (float) (numEntries - 1)}; float[] rgb = colorSpace.toRGB(gray); arr[i] = (byte) (rgb[0] * 255); arg[i] = (byte) (rgb[1] * 255); arb[i] = (byte) (rgb[2]* 255); } ColorModel colorModel = new IndexColorModel(bits, numEntries, arr, arg, arb); SampleModel sampleModel = new MultiPixelPackedSampleModel(dataType, 1, 1, bits); return new ImageTypeSpecifier(colorModel, sampleModel); }
public static BufferedImage getAsImage(Area shape, RenderedImage source) { SampleModel sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, source.getWidth(), source.getHeight(), 1); BufferedImage ti = new BufferedImage(source.getWidth(), source.getHeight(), sm.getDataType()); Graphics2D g2d = ti.createGraphics(); // Write the Shape into the TiledImageGraphics. g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.fill(shape); g2d.dispose(); return ti; }
if (tileFormat.startsWith("raw")) { if (numberOfBits == 1 || numberOfBits == 2 || numberOfBits == 4) { sampleModel = new MultiPixelPackedSampleModel(dataType, tileWidth, tileHeight, numberOfBits); } else { sampleModel = ImageUtils.createSingleBandedSampleModel(dataType, tileWidth, tileHeight);
public TestImage(byte data[], int w, int h, int scanlineStride) { super("Demobild"); // Color-Model sagt: bit = 0 -> schwarz, bit = 1 -> weiss. Ggf. umdrehen. ColorModel colorModel = new IndexColorModel(1, 2, new byte[]{ (byte) 0xff, 0x00 }, new byte[]{ (byte) 0xff, 0x00 }, new byte[]{ (byte) 0xff, 0x00 }); DataBuffer dataBuffer = new DataBufferByte(data, data.length); SampleModel sampleModel = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, w, h, 1, scanlineStride, 0); WritableRaster writableRaster = Raster.createWritableRaster(sampleModel, dataBuffer, new Point(0, 0)); BufferedImage image = new BufferedImage(colorModel, writableRaster, false, null); ImageComponent imageComponent = new ImageComponent(image); // imageComponent.setScale(4); JScrollPane sp = new JScrollPane(imageComponent); setContentPane(sp); pack(); setSize(new Dimension(1600, 900)); setVisible(true); try { System.in.read(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public TestImage(byte data[], int w, int h, int scanlineStride) { super("Demobild"); // Color-Model sagt: bit = 0 -> schwarz, bit = 1 -> weiss. Ggf. umdrehen. ColorModel colorModel = new IndexColorModel(1, 2, new byte[] { (byte) 0xff, 0x00 }, new byte[] { (byte) 0xff, 0x00 }, new byte[] { (byte) 0xff, 0x00 }); DataBuffer dataBuffer = new DataBufferByte(data, data.length); SampleModel sampleModel = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, w, h, 1, scanlineStride, 0); WritableRaster writableRaster = Raster.createWritableRaster(sampleModel, dataBuffer, new Point(0, 0)); BufferedImage image = new BufferedImage(colorModel, writableRaster, false, null); ImageComponent imageComponent = new ImageComponent(image); // imageComponent.setScale(4); JScrollPane sp = new JScrollPane(imageComponent); setContentPane(sp); pack(); setSize(new Dimension(1600, 900)); setVisible(true); try { System.in.read(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public TestImage(byte data[], int w, int h, int scanlineStride) { super("Demobild"); // Color-Model sagt: bit = 0 -> schwarz, bit = 1 -> weiss. Ggf. umdrehen. ColorModel colorModel = new IndexColorModel(1, 2, new byte[]{ (byte) 0xff, 0x00 }, new byte[]{ (byte) 0xff, 0x00 }, new byte[]{ (byte) 0xff, 0x00 }); DataBuffer dataBuffer = new DataBufferByte(data, data.length); SampleModel sampleModel = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, w, h, 1, scanlineStride, 0); WritableRaster writableRaster = Raster.createWritableRaster(sampleModel, dataBuffer, new Point(0, 0)); BufferedImage image = new BufferedImage(colorModel, writableRaster, false, null); ImageComponent imageComponent = new ImageComponent(image); // imageComponent.setScale(4); JScrollPane sp = new JScrollPane(imageComponent); setContentPane(sp); pack(); setSize(new Dimension(1600, 900)); setVisible(true); try { System.in.read(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
@Override public SampleModel createCompatibleSampleModel(int width, int height) { // workaround -- create a MultiPixelPackedSample models for // single-sample, less than 8bpp color models if (getNumComponents() == 1 && getPixelSize() < 8) { return new MultiPixelPackedSampleModel(getTransferType(), width, height, getPixelSize()); } return super.createCompatibleSampleModel(width, height); }
if ((variant == PBM_ASCII) || (variant == PBM_RAW)) { sampleModel = new MultiPixelPackedSampleModel( DataBuffer.TYPE_BYTE, width,
if ((variant == PBM_ASCII) || (variant == PBM_RAW)) { sampleModel = new MultiPixelPackedSampleModel( DataBuffer.TYPE_BYTE, width,
new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, tileWidth, tileHeight,
@Override public SampleModel createCompatibleSampleModel(int width, int height) { // workaround -- create a MultiPixelPackedSample models for // single-sample, less than 8bpp color models if (getNumComponents() == 1 && getPixelSize() < 8) { return new MultiPixelPackedSampleModel(getTransferType(), width, height, getPixelSize()); } return super.createCompatibleSampleModel(width, height); }
if ("BQA".equalsIgnoreCase(attrValue.toString())) { final MultiPixelPackedSampleModel newSampleModel = new MultiPixelPackedSampleModel( DataBuffer.TYPE_BYTE, originalBandData.getRenderedImage().getWidth(),
/** Simple method for image creation */ public static RenderedImage createTestImage(int dataType, int width, int height, Number noDataValue, boolean isBinary, int numBands, Number validData) { final SampleModel sm; if (isBinary) { // Binary images Sample Model sm = new MultiPixelPackedSampleModel(dataType, width, height, 1); numBands = 1; } else { int imageDim = width * height; if(numBands == 3){ sm = new ComponentSampleModel(dataType, width, height, 3, width, new int[] { 0, imageDim, imageDim * 2 }); }else{ sm = new ComponentSampleModel(dataType, width, height, 1, width, new int[] {0}); } } return createTestImage(width, height, noDataValue, numBands, validData, sm); }
public static ImageTypeSpecifier createPackedGrayscale(final ColorSpace colorSpace, final int bits, final int dataType) { notNull(colorSpace, "colorSpace"); isTrue(colorSpace.getType() == ColorSpace.TYPE_GRAY, colorSpace, "ColorSpace must be TYPE_GRAY"); isTrue(bits == 1 || bits == 2 || bits == 4, bits, "bits must be 1, 2, or 4: %s"); isTrue(dataType == DataBuffer.TYPE_BYTE, dataType, "dataType must be TYPE_BYTE: %s"); int numEntries = 1 << bits; byte[] arr = new byte[numEntries]; byte[] arg = new byte[numEntries]; byte[] arb = new byte[numEntries]; // Scale array values according to color profile.. for (int i = 0; i < numEntries; i++) { float[] gray = new float[]{i / (float) (numEntries - 1)}; float[] rgb = colorSpace.toRGB(gray); arr[i] = (byte) (rgb[0] * 255); arg[i] = (byte) (rgb[1] * 255); arb[i] = (byte) (rgb[2]* 255); } ColorModel colorModel = new IndexColorModel(bits, numEntries, arr, arg, arb); SampleModel sampleModel = new MultiPixelPackedSampleModel(dataType, 1, 1, bits); return new ImageTypeSpecifier(colorModel, sampleModel); }
private static ImageLayout layoutHelper(RenderedImage source, ImageLayout il, Map config) { ImageLayout layout = (il == null) ? new ImageLayout() : (ImageLayout) il.clone(); SampleModel sm = layout.getSampleModel(source); if (!ImageUtil.isBinary(sm)) { sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, layout.getTileWidth(source), layout.getTileHeight(source), 1); layout.setSampleModel(sm); } ColorModel cm = layout.getColorModel(null); if (cm == null || !JDKWorkarounds.areCompatibleDataModels(sm, cm)) { layout.setColorModel(ImageUtil.getCompatibleColorModel(sm, config)); } return layout; }
private static ImageLayout layoutHelper(RenderedImage source, ImageLayout il, Map config) { ImageLayout layout = (il == null) ? new ImageLayout() : (ImageLayout) il.clone(); SampleModel sm = layout.getSampleModel(source); if (!ImageUtil.isBinary(sm)) { sm = new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, layout.getTileWidth(source), layout.getTileHeight(source), 1); layout.setSampleModel(sm); } ColorModel cm = layout.getColorModel(null); if (cm == null || !JDKWorkarounds.areCompatibleDataModels(sm, cm)) { layout.setColorModel(ImageUtil.getCompatibleColorModel(sm, config)); } return layout; }
return new MultiPixelPackedSampleModel(getTransferType(), width, height,
protected void testPackedImage(InterpolationType interpolation) { boolean roiPresent = true; boolean noDataRangeUsed = true; boolean useROIAccessor = true; Number noData = 3; Number validData = 1; int[] dataTypes = new int[] {DataBuffer.TYPE_BYTE, DataBuffer.TYPE_USHORT, DataBuffer.TYPE_INT}; for (ScaleType scaleType : ScaleType.values()) { for (int dataType : dataTypes) { MultiPixelPackedSampleModel sm = new MultiPixelPackedSampleModel(dataType, DEFAULT_WIDTH, DEFAULT_HEIGHT, 2); RenderedImage image = createTestImage(DEFAULT_WIDTH, DEFAULT_HEIGHT, 0, 1, validData, sm); testImage( image.getSampleModel().getDataType(), noData, useROIAccessor, false, noDataRangeUsed, roiPresent, interpolation, TestSelection.ROI_ACCESSOR_NO_DATA, scaleType, image); } } }