Mercurial > hg > digilib-old
changeset 979:f34891279a6e
bio-formats codec now works sometimes (only mo=q0 and only mo=jpg).
author | robcast |
---|---|
date | Thu, 26 Jan 2012 21:46:33 +0100 |
parents | 17bf6ac7a8cd |
children | 5db496a7e48c |
files | common-bioformats/pom.xml common-bioformats/src/main/java/digilib/image/BioFormatsDocuImage.java pom.xml webapp/pom.xml webapp/src/main/webapp/WEB-INF/digilib-config.xml |
diffstat | 5 files changed, 51 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/common-bioformats/pom.xml Thu Jan 26 17:51:47 2012 +0100 +++ b/common-bioformats/pom.xml Thu Jan 26 21:46:33 2012 +0100 @@ -26,7 +26,7 @@ <dependency> <groupId>loci</groupId> <artifactId>bio-formats</artifactId> - <version>4.3.3-SNAPSHOT</version> + <version>5.0-SNAPSHOT</version> </dependency> </dependencies> </project> \ No newline at end of file
--- a/common-bioformats/src/main/java/digilib/image/BioFormatsDocuImage.java Thu Jan 26 17:51:47 2012 +0100 +++ b/common-bioformats/src/main/java/digilib/image/BioFormatsDocuImage.java Thu Jan 26 21:46:33 2012 +0100 @@ -12,6 +12,11 @@ import java.io.IOException; import java.io.OutputStream; +import ome.xml.model.primitives.PositiveInteger; + +import loci.common.services.DependencyException; +import loci.common.services.ServiceException; +import loci.common.services.ServiceFactory; import loci.formats.FormatException; import loci.formats.IFormatWriter; import loci.formats.ImageReader; @@ -19,7 +24,11 @@ import loci.formats.gui.BufferedImageReader; import loci.formats.gui.BufferedImageWriter; import loci.formats.meta.DummyMetadata; +import loci.formats.meta.IMetadata; import loci.formats.meta.MetadataRetrieve; +import loci.formats.meta.MetadataStore; +import loci.formats.ome.OMEXMLMetadata; +import loci.formats.services.OMEXMLService; import digilib.io.FileOpException; import digilib.io.ImageInput; @@ -35,6 +44,7 @@ private Object imageSize; private RenderingHints renderHint; private ImageReader reader; + private OMEXMLMetadata meta; /* * (non-Javadoc) @@ -73,6 +83,14 @@ this.input = ii; reader = new ImageReader(); try { + // construct the object that stores OME-XML metadata + ServiceFactory factory = new ServiceFactory(); + OMEXMLService service = factory.getInstance(OMEXMLService.class); + meta = service.createOMEXMLMetadata(); + + // set up the reader and associate it with the input file + reader = new ImageReader(); + reader.setMetadataStore(meta); reader.setId(ii.getFile().getAbsolutePath()); BufferedImageReader biReader = BufferedImageReader.makeBufferedImageReader(reader); img = biReader.openImage(0); @@ -81,6 +99,12 @@ throw new FileOpException("Unable to load image format: " + e); } catch (IOException e) { throw new FileOpException("Unable to load image file: " + e); + } catch (ServiceException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (DependencyException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } } @@ -148,10 +172,16 @@ */ BufferedImageWriter writer = BufferedImageWriter.makeBufferedImageWriter(iw); try { - logger.debug("setting metadata"); - iw.setMetadataRetrieve((MetadataRetrieve) reader.getMetadataStore()); + logger.debug("setting metadata "+meta); + iw.setMetadataRetrieve(meta); logger.debug("writing to file " + outFile); writer.setId(outFile.getAbsolutePath()); + logger.debug("fixing metadata "+meta); + iw.setInterleaved(reader.isInterleaved()); + iw.setWriteSequentially(true); + meta.setPixelsSizeX(new PositiveInteger(img.getWidth()), 0); + meta.setPixelsSizeY(new PositiveInteger(img.getHeight()), 0); + meta.setPixelsSizeC(new PositiveInteger(img.getColorModel().getNumComponents()), 0); logger.debug("saving image " + img); writer.saveImage(0, img); logger.debug("closing file");
--- a/pom.xml Thu Jan 26 17:51:47 2012 +0100 +++ b/pom.xml Thu Jan 26 21:46:33 2012 +0100 @@ -49,71 +49,57 @@ <groupId>org.jdom</groupId> <artifactId>jdom</artifactId> <version>1.1</version> - <type>jar</type> - <scope>compile</scope> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.14</version> - <type>jar</type> - <scope>compile</scope> </dependency> + <!-- digilib module versions --> <dependency> <groupId>digilib</groupId> <artifactId>digilib-common</artifactId> <version>2.1-SNAPSHOT</version> - <type>jar</type> - <scope>compile</scope> </dependency> <dependency> <groupId>digilib</groupId> <artifactId>digilib-common-jai</artifactId> <version>2.1-SNAPSHOT</version> - <type>jar</type> - <scope>compile</scope> </dependency> <dependency> <groupId>digilib</groupId> <artifactId>digilib-common-imagej</artifactId> <version>2.1-SNAPSHOT</version> - <type>jar</type> - <scope>compile</scope> + </dependency> + <dependency> + <groupId>digilib</groupId> + <artifactId>digilib-common-bioformats</artifactId> + <version>2.1-SNAPSHOT</version> </dependency> <dependency> <groupId>digilib</groupId> <artifactId>digilib-pdf</artifactId> <version>2.1-SNAPSHOT</version> - <type>jar</type> - <scope>compile</scope> </dependency> <dependency> <groupId>digilib</groupId> <artifactId>digilib-text</artifactId> <version>2.1-SNAPSHOT</version> - <type>jar</type> - <scope>compile</scope> </dependency> <dependency> <groupId>digilib</groupId> <artifactId>digilib-servlet2</artifactId> <version>2.1-SNAPSHOT</version> - <type>jar</type> - <scope>compile</scope> </dependency> <dependency> <groupId>digilib</groupId> <artifactId>digilib-servlet3</artifactId> <version>2.1-SNAPSHOT</version> - <type>jar</type> - <scope>compile</scope> </dependency> <dependency> <groupId>digilib</groupId> <artifactId>digilib-webapp</artifactId> <version>2.1-SNAPSHOT</version> - <type>war</type> - <scope>compile</scope> </dependency> </dependencies> </dependencyManagement> @@ -151,6 +137,7 @@ <module>common</module> <module>common-jai</module> <module>common-imagej</module> + <module>common-bioformats</module> <module>servlet2</module> <module>servlet3</module> <module>pdf</module>
--- a/webapp/pom.xml Thu Jan 26 17:51:47 2012 +0100 +++ b/webapp/pom.xml Thu Jan 26 21:46:33 2012 +0100 @@ -142,5 +142,16 @@ </dependency> </dependencies> </profile> + <profile> + <id>codec-bioformats</id> + <dependencies> + <dependency> + <groupId>digilib</groupId> + <artifactId>digilib-common-bioformats</artifactId> + <type>jar</type> + <scope>compile</scope> + </dependency> + </dependencies> + </profile> </profiles> </project>
--- a/webapp/src/main/webapp/WEB-INF/digilib-config.xml Thu Jan 26 17:51:47 2012 +0100 +++ b/webapp/src/main/webapp/WEB-INF/digilib-config.xml Thu Jan 26 21:46:33 2012 +0100 @@ -18,7 +18,6 @@ <!-- Java class to use for image operations --> <parameter name="docuimage-class" value="digilib.image.ImageLoaderDocuImage" /> - <!-- <parameter name="docuimage-class" value="digilib.image.ImageJ1DocuImage" /> --> <!-- mimimum amount of scaling done with antialiasing --> <parameter name="subsample-minimum" value="2"/>