ImagePlus duplicateStack(ImagePlus img1) { ImageStack stack1 = img1.getStack(); int width = stack1.getWidth(); int height = stack1.getHeight(); int n = stack1.getSize(); ImageStack stack2 = img1.createEmptyStack(); try { for (int i = 1; i <= n; i++) { ImageProcessor ip1 = stack1.getProcessor(i); ip1.resetRoi(); ImageProcessor ip2 = ip1.crop(); stack2.addSlice(stack1.getSliceLabel(i), ip2); } } catch (OutOfMemoryError e) { stack2.trim(); stack2 = null; return null; } return new ImagePlus("Duplicate", stack2); }