Hi Tobias (et al), Thanks for getting back to me.
So it sounds like to go full round trip from ArrayImg[x, y, 3] -> BufferedImage -> ArrayImg[x, y, 3] I’ll need to manually unpack values from the buffered image. Something like: val arraying = // initialize empty ArrayImg val cursor = arrayImg.randomAccess() for (x <- 0 until bufferedImage.getWidth; y <- 0 until bufferedImage.getHeight) { val rgb: Int = bufferedImage.getRGB val b: Array[Byte] = // unpack rbg to components for (c <- 0 until 3) { cursor.setPosition(x, y, c) cursor.get.set(b(c)) } } Does that sound like the correct thing to do? Thanks for you help Brian On August 20, 2014 at 2:10:45 AM, Tobias Pietzsch (pietz...@mpi-cbg.de) wrote: Hi Brian, BufferedImage is always 2D, so you cannot have a BufferedImage with dimensions (height, width, 3). If you know that you have an ArrayImg and you know the pixel Type, you can get to the underlying primitive array, for example byte[] array = ( byte[] ) ( ( ArrayDataAccess< ? > ) img.update( null ) ).getCurrentStorageArray() if you know that img is a UnsignedByteType ArrayImg. Then you wrap that in a BufferedImage. You can do the same thing the other way around: Get the primitive array from the BufferedImage and wrap it in an ArrayImg. Essentially the code you found does that for you for the standard PixelTypes (UnsignedByteType, ARGBType, etc )... best regards, Tobias On 20 Aug 2014, at 00:20, Brian Schlining <bschlin...@gmail.com> wrote: Hi All, I’m trying to use imglib2 for some image processing. One thing I need to do is transform Img (actually ArrayImg) objects to BufferedImages. I’d also like to be able to transform those BufferedImages back into ArrayImg objects. For the most part I’m currently working with just PNG and JPEG (i.e. ARGB). I think I found a way to convert an Img to BufferedImage, but I’m not sure this is the recommended method. So if anyone has a better recommendation, please let me know!! Here’s the method I found: // Scala code, sorry Java folks. import net.imglib2.img.display.imagej.ImageJFunctions val imagePlus = ImageJFunctions.wrap(img, "") val bufferedImage = imagePlus.getBufferedImage How do I convert the buffered image back to an Img object? I saw this code at https://github.com/imglib/imglib/…/BufferedImageImg.java, but the resulting ArrayImg has dimensions of (height, width, 1) instead of the expected dimensions of (heigh, width, 3), so it doesn’t appear to be doing the right thing. Thanks! Brian -- Brian Schlining _______________________________________________ ImageJ-devel mailing list ImageJ-devel@imagej.net http://imagej.net/mailman/listinfo/imagej-devel -- Brian Schlining
_______________________________________________ ImageJ-devel mailing list ImageJ-devel@imagej.net http://imagej.net/mailman/listinfo/imagej-devel