/*
* #%L
* OME Bio-Formats package for reading and converting biological file formats.
* %%
* Copyright (C) 2005 - 2015 Open Microscopy Environment:
* - Board of Regents of the University of Wisconsin-Madison
* - Glencoe Software, Inc.
* - University of Dundee
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* <http://www.gnu.org/licenses/gpl-2.0.html>.
* #L%
*/
import loci.common.services.ServiceFactory;
import loci.formats.ImageReader;
import loci.formats.meta.IMetadata;
import loci.formats.services.OMEXMLService;
/**
* Edits the given file's image name (but does not save back to disk).
*/
public class EditImageName {
public static void main(String[] args) throws Exception {
if (args.length != 1) {
System.out.println("Usage: java EditImageName file");
return;
}
ImageReader reader = new ImageReader();
// record metadata to OME-XML format
ServiceFactory factory = new ServiceFactory();
OMEXMLService service = factory.getInstance(OMEXMLService.class);
IMetadata omexmlMeta = service.createOMEXMLMetadata();
reader.setMetadataStore(omexmlMeta);
String id = args[0];
System.out.print("Reading metadata ");
reader.setId(id);
System.out.println(" [done]");
// get image name
String name = omexmlMeta.getImageName(0);
System.out.println("Initial Image name = " + name);
// change image name (reverse it)
char[] arr = name.toCharArray();
for (int i=0; i<arr.length/2; i++) {
int i2 = arr.length - i - 1;
char c = arr[i];
char c2 = arr[i2];
arr[i] = c2;
arr[i2] = c;
}
name = new String(arr);
// save altered name back to OME-XML structure
omexmlMeta.setImageName(name, 0);
System.out.println("Updated Image name = " + name);
// output full OME-XML block
System.out.println("Full OME-XML dump:");
String xml = service.getOMEXML(omexmlMeta);
System.out.println(xml);
}
}