code: public static void bufferedToPlanar_U8(BufferedImage src, Planar<GrayU8> dst) {
  
  		final int width = src.getWidth();
  		final int height = src.getHeight();
  
  		if (dst.getNumBands() == 3) {
  			byte[] band1 = dst.getBand(0).data;
  			byte[] band2 = dst.getBand(1).data;
  			byte[] band3 = dst.getBand(2).data;
  
  			//CONCURRENT_BELOW BoofConcurrency.loopFor(0, height, y -> {
  			for (int y = 0; y < height; y++) {
  				int index = dst.startIndex + y * dst.stride;
  				for (int x = 0; x < width; x++, index++) {
  					int argb = src.getRGB(x, y);
  
  					band1[index] = (byte) (argb >>> 16);
  					band2[index] = (byte) (argb >>> 8);
  					band3[index] = (byte) argb;
  				}
  			}
  			//CONCURRENT_ABOVE });
  		} else {
  			bufferedToGray(src, dst.getBand(0).data,dst.startIndex,dst.stride);
  			GrayU8 band1 = dst.getBand(0);
  			for (int i = 1; i < dst.getNumBands(); i++) {
  				dst.getBand(i).setTo(band1);
  			}
  		}
  	}
docs: <p>
  Converts a buffered image into an planar 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.