public static void foo(void) { //initialiase a connection to an OMERO server. Login login = new Login(username, password); Server server = new Server(servername, 1099); ServiceFactory sf = new ServiceFactory(server, login); uid = sf.getAdminService().getEventContext().getCurrentUserId(); IQuery query = sf.getQueryService(); IUpdate up = sf.getUpdateService(); RawPixelsStore rawpix = sf.createRawPixelsStore(); //Now grab a specific (unique_id) Image and it's Pixels off the server. long unique_id = 140350; Filter filter = new Filter().owner(uid); Parameters params = new Parameters(filter); params.addId(unique_id); List imgs = query.findAllByQuery("select i from Image i" + " left outer join fetch i.pixels pix"+ " where i.id = :id",params); Image img = imgs.get(0); //Grab a Pixels object from the Image //we assume that the original image //pixels are the first entry Pixels origpixs = null; if(img.sizeOfPixels()!=0) { origpixs = img.getPixels(0); } //Now if we have the original Pixels if(origpixs!=null) { //Create a new Pixels object //with the exact same dimensions, order, type etc... Pixels pixs = new Pixels(); pixs.setPixelsDimensions(origpixs.getPixelsDimensions()); pixs.setDimensionOrder(origpixs.getDimensionOrder()); pixs.setPixelsType(origpixs.getPixelsType()); pixs.setSizeX(origpixs.getSizeX()); pixs.setSizeY(origpixs.getSizeY()); pixs.setSizeZ(origpixs.getSizeZ()); pixs.setSizeC(origpixs.getSizeC()); pixs.setSizeT(origpixs.getSizeT()); pixs.setSha1(origpixs.getSha1()); //Add this Pixels object to the image. img.addPixels(pixs); //Update it to the database img = (Image) up.saveAndReturnObject(img); //Now lets actually write some data in our new Pixels pixs = img.getPixels(img.sizeOfPixels()-1); rawpix.setPixelsId(pixs.getId()); for(int z=0; z