public static void bufferedToGray(BufferedImage src, InterleavedU8 dst) { bufferedToGray(src, dst.data, dst.startIndex, dst.stride); }
public static void bufferedToGray(BufferedImage src, InterleavedF32 dst) { bufferedToGray(src,dst.data,dst.startIndex,dst.stride); }
/** * <p> * Converts a buffered image into an 8bit intensity image using the * BufferedImage's RGB interface. * </p> * <p> * This is much slower than working * directly with the BufferedImage's internal raster and should be * avoided if possible. * </p> * * @param src Input image. * @param dst Output image. */ public static void bufferedToGray(BufferedImage src, GrayF32 dst) { bufferedToGray(src,dst.data,dst.startIndex,dst.stride); }
/** * <p> * Converts a buffered image into an 8bit intensity image using the * BufferedImage's RGB interface. * </p> * <p> * This is much slower than working * directly with the BufferedImage's internal raster and should be * avoided if possible. * </p> * * @param src Input image. * @param dst Output image. */ public static void bufferedToGray(BufferedImage src, GrayU8 dst) { bufferedToGray(src, dst.data, dst.startIndex, dst.stride); }
if (src.getRaster() instanceof ByteInterleavedRaster ) { if( src.getType() != BufferedImage.TYPE_BYTE_INDEXED ) { ConvertRaster.bufferedToGray((ByteInterleavedRaster) src.getRaster(), dst); } else { ConvertRaster.bufferedToGray(src, dst); ConvertRaster.bufferedToGray((IntegerInterleavedRaster) src.getRaster(), dst); } else if( src.getRaster().getClass() == SunWritableRaster.class ) { ConvertRaster.bufferedToGray((SunWritableRaster) src.getRaster(), dst); } else { ConvertRaster.bufferedToGray(src, dst); ConvertRaster.bufferedToGray(src, dst);
/** * Converts the buffered image into an {@link GrayI16}. If the buffered image * has multiple channels the intensities of each channel are averaged together. * * @param src Input image. * @param dst Where the converted image is written to. If null a new unsigned image is created. * @return Converted image. */ public static <T extends GrayI16>T convertFrom(BufferedImage src, T dst , Class<T> type ) { if (dst != null) { if (src.getWidth() != dst.getWidth() || src.getHeight() != dst.getHeight()) { throw new IllegalArgumentException("image dimension are different"); } } else { dst = GeneralizedImageOps.createSingleBand(type, src.getWidth(), src.getHeight()); } try { if (src.getRaster() instanceof ShortInterleavedRaster ) { ConvertRaster.bufferedToGray((ShortInterleavedRaster) src.getRaster(), dst); return dst; } } catch( java.security.AccessControlException e) {} // Applets don't allow access to the raster() or the image type wasn't supported ConvertRaster.bufferedToGray(src, dst); return dst; }
if (src.getRaster() instanceof ByteInterleavedRaster ) { if( src.getType() != BufferedImage.TYPE_BYTE_INDEXED ) { ConvertRaster.bufferedToGray((ByteInterleavedRaster) src.getRaster(), dst); } else { ConvertRaster.bufferedToGray(src, dst); ConvertRaster.bufferedToGray((IntegerInterleavedRaster) src.getRaster(), dst); } else if( src.getRaster().getClass() == SunWritableRaster.class ) { ConvertRaster.bufferedToGray((SunWritableRaster) src.getRaster(), dst); } else { ConvertRaster.bufferedToGray(src, dst); ConvertRaster.bufferedToGray(src, dst);
ConvertRaster.bufferedToGray(src, dst); } else { throw new IllegalArgumentException("Unsupported number of input bands");
public static void bufferedToInterleaved(BufferedImage src, InterleavedF32 dst) { final int width = src.getWidth(); final int height = src.getHeight(); if (dst.getNumBands() == 3) { for (int y = 0; y < height; y++) { int indexDst = dst.startIndex + y * dst.stride; for (int x = 0; x < width; x++) { int argb = src.getRGB(x, y); dst.data[indexDst++] = (argb >>> 16) & 0xFF; dst.data[indexDst++] = (argb >>> 8) & 0xFF; dst.data[indexDst++] = argb & 0xFF; } } } else if (dst.getNumBands() == 4) { for (int y = 0; y < height; y++) { int indexDst = dst.startIndex + y * dst.stride; for (int x = 0; x < width; x++) { int argb = src.getRGB(x, y); dst.data[indexDst++] = (argb >>> 24) & 0xFF; dst.data[indexDst++] = (argb >>> 16) & 0xFF; dst.data[indexDst++] = (argb >>> 8) & 0xFF; dst.data[indexDst++] = argb & 0xFF; } } } else if( dst.getNumBands() == 1 ){ ConvertRaster.bufferedToGray(src, dst); } else { throw new IllegalArgumentException("Unsupported number of input bands"); } }
if(src.getType() != BufferedImage.TYPE_BYTE_INDEXED) { if (src.getType() == BufferedImage.TYPE_BYTE_GRAY) { ConvertRaster.bufferedToGray(src, (InterleavedU8) dst); } else { ConvertRaster.bufferedToInterleaved((ByteInterleavedRaster) src.getRaster(), (InterleavedU8) dst); if(src.getType() != BufferedImage.TYPE_BYTE_INDEXED) { if (src.getType() == BufferedImage.TYPE_BYTE_GRAY) { ConvertRaster.bufferedToGray(src, (InterleavedF32) dst); } else { ConvertRaster.bufferedToInterleaved((ByteInterleavedRaster) src.getRaster(), (InterleavedF32) dst);
if( src.getType() == BufferedImage.TYPE_BYTE_GRAY) { for( int i = 0; i < dst.getNumBands(); i++ ) ConvertRaster.bufferedToGray(src, ((Planar<GrayU8>) dst).getBand(i)); } else { ConvertRaster.bufferedToMulti_U8((ByteInterleavedRaster) src.getRaster(), (Planar<GrayU8>) dst); if( src.getType() == BufferedImage.TYPE_BYTE_GRAY) { for( int i = 0; i < dst.getNumBands(); i++ ) ConvertRaster.bufferedToGray(src,((Planar<GrayF32>)dst).getBand(i)); } else { ConvertRaster.bufferedToMulti_F32((ByteInterleavedRaster) src.getRaster(), (Planar<GrayF32>) dst);
ConvertRaster.bufferedToGray(src, dst.getBand(0)); GrayU8 band1 = dst.getBand(0); for (int i = 1; i < dst.getNumBands(); i++) {
ConvertRaster.bufferedToGray(src, dst.getBand(0)); } else { throw new IllegalArgumentException("Unsupported number of input bands");