package edu.mbl.jif.imaging.meta;
//import javax.imageio.*;
//import javax.imageio.metadata.*;
//import javax.media.jai.PlanarImage;
////import org.dom4j.Node;
//import java.awt.image.RenderedImage;
//import java.awt.image.BufferedImage;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class MetaDataNotes
{
public MetaDataNotes () {
/*
IIOMetadata
fieldNode.asciisNode
//Create the little tree corresponding to the Tiff Taf "ImageDescription".
IIOMetadataNode fieldNode = new IIOMetadataNode("TIFFField");
fieldNode.setAttribute("number", "270");
fieldNode.setAttribute("name", "ImageDescription");
IIOMetadataNode asciisNode = new IIOMetadataNode("TIFFAsciis");
fieldNode.appendChild(asciisNode);
IIOMetadataNode asciiNode = new IIOMetadataNode("TIFFAscii");
String descStr = "PS___\n"
+ "zeroIntensity=10\n"
+ "this=that\n"
+ "swing=0.01\n"
+ "etc. etc. \n"
+ " \n";
asciiNode.setAttribute("value", descStr);
asciisNode.appendChild(asciiNode);
//Add this to the image metadata tree, down one level.
Node tagSetNode = iNode.getFirstChild();
tagSetNode.appendChild(fieldNode);
*/
/*
// reading 1 --> N input images -------------------------------------
getImageReader
ImageReader imageReaderN = null; //.... (bmp, jpg, tiff, etc)
IIOMetadata iioStreamMetadataN = imageReaderN.getStreamMetadata();
IIOMetadata iioImageMetadataN = imageReaderN.getImageMetadata(0);
PlanarImage planarImageN =
PlanarImage.wrapRenderedImage(imageReaderN.readAsRenderedImage(0, null));
// preparing output image (multi-page tiff) -------------------------
ImageWriter imageWriter = null; //....
ImageWriteParam imageWriteParam = imageWriter.getDefaultWriteParam();
boolean canWriteSequence = imageWriter.canWriteSequence();
imageWriteParam = imageWriter.getDefaultWriteParam();
// preparing StreamMetadata -----------------------------------------
IIOMetadata iioStreamMetadata =
iioStreamMetadata1 == null
? imageWriter.getDefaultStreamMetadata(imageWriteParam)
: imageWriter.convertStreamMetadata(iioStreamMetadata1, imageWriteParam);
if ( canWriteSequence )
imageWriter.prepareWriteSequence(iioStreamMetadata);
// writing every single page ----------------------------------------
ImageTypeSpecifier imageTypeSpecifierN = new ImageTypeSpecifier(planarImageN);
IIOMetadata iioImageMetadata =
iioImageMetadataN == null
? imageWriter.getDefaultImageMetadata(imageTypeSpecifierN, imageWriteParam)
: imageWriter.convertImageMetadata(iioImageMetadataN, imageTypeSpecifierN, imageWriteParam);
IIOImage iioImage = new IIOImage(planarImageN, null, iioImageMetadata);
if ( canWriteSequence )
imageWriter.writeToSequence(iioImage, imageWriteParam);
else
imageWriter.write(iioStreamMetadata, iioImage, imageWriteParam);
// end writing ------------------------------------------------------
if ( canWriteSequence )
imageWriter.endWriteSequence();
*/
//===========================================================================================
// Test image
/*
RenderedImage image = new BufferedImage(8, 8, BufferedImage.TYPE_INT_ARGB);
// Get the default metadata for this kind of image
ImageWriter imageWriter = ImageIO.getImageWritersByFormatName("TIFF").next();
ImageWriteParam writeParam = imageWriter.getDefaultWriteParam();
IIOMetadata metadata =
imageWriter.getDefaultImageMetadata(new ImageTypeSpecifier(image), writeParam);
// The root metadata node is...
//Node metadataRoot = metadata.getAsTree(metadata.getNativeMetadataFormatName());
*/
}
}
/*
The XSD Schema is misleading, it describes the acceptable type of data for an element,
not necessarily that the element contains that data type as children.
I prefer to use DTDs; for example, this one is invalid for IIO Metadata objects because text is a valid child of the element, like this:
<!ELEMENT some-metadata-tag (PCDATA)>
So you could write XML like this; for which the IIOMetadataFormat object has no
description:
<some-metadata-tag>Text,Text,Text</some-metadata-tag>
This is also invalid for the same reason:
<!ELEMENT some-metadata-tag (PCDATA,child-tag)>
Conforming XML might look like this:
<some-metadata-tag>
Text,Text,Text
<child-tag/>
</some-metadata-tag>
However, this DTD will work for IIO Metadata objects:
<!ELEMENT some-metadata-tag (child-tag)>
<!ATTLIST some-metadata-tag value CDATA #REQUIRED>
<some-metadata-tag value="Text,Text,Text">
<child-tag/>
</some-metadata-tag>
*/