@RolesAllowed("user") @Transactional(readOnly = false) public Long copyAndResizePixels(long pixelsId, Integer sizeX, Integer sizeY, Integer sizeZ, Integer sizeT, List<Integer> channelList, String methodology, boolean copyStats) { Pixels from = retrievePixDescription(pixelsId); Pixels to = _copyAndResizePixels(pixelsId, sizeX, sizeY, sizeZ, sizeT, channelList, methodology, copyStats); // Deal with Image linkage Image image = from.getImage(); image.addPixels(to); // Save and return our newly created Pixels Id image = iUpdate.saveAndReturnObject(image); return image.getPixels(image.sizeOfPixels() - 1).getId(); }
@RolesAllowed("user") @Transactional(readOnly = false) public Long copyAndResizeImage(long imageId, Integer sizeX, Integer sizeY, Integer sizeZ, Integer sizeT, List<Integer> channelList, String name, boolean copyStats) { Image iFrom = iQuery.get(Image.class, imageId); Image iTo = new Image(); // Set the image name iTo.setAcquisitionDate(iFrom.getAcquisitionDate()); iTo.setName(name); iTo.setObjectiveSettings(iFrom.getObjectiveSettings()); iTo.setImagingEnvironment(iFrom.getImagingEnvironment()); iTo.setExperiment(iFrom.getExperiment()); iTo.setStageLabel(iFrom.getStageLabel()); iTo.setInstrument(iFrom.getInstrument()); // Copy each Pixels set that the source image has Iterator<Pixels> i = iFrom.iteratePixels(); while (i.hasNext()) { Pixels p = i.next(); Pixels to = _copyAndResizePixels(p.getId(), sizeX, sizeY, sizeZ, sizeT, channelList, null, copyStats); iTo.addPixels(to); } // Save and return our newly created Image Id iTo = iUpdate.saveAndReturnObject(iTo); return iTo.getId(); }