|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
package com.sun.imageio.plugins.wbmp; |
|
|
|
import java.io.UnsupportedEncodingException; |
|
import java.util.ArrayList; |
|
import java.util.Iterator; |
|
import java.util.List; |
|
import javax.imageio.ImageTypeSpecifier; |
|
import javax.imageio.metadata.IIOMetadata; |
|
import javax.imageio.metadata.IIOMetadataNode; |
|
import javax.imageio.metadata.IIOMetadataFormat; |
|
import javax.imageio.metadata.IIOMetadataFormatImpl; |
|
import org.w3c.dom.Node; |
|
import com.sun.imageio.plugins.common.I18N; |
|
|
|
import com.sun.imageio.plugins.common.ImageUtil; |
|
|
|
public class WBMPMetadata extends IIOMetadata { |
|
|
|
static final String nativeMetadataFormatName = |
|
"javax_imageio_wbmp_1.0"; |
|
|
|
public int wbmpType; |
|
|
|
public int width; |
|
public int height; |
|
|
|
public WBMPMetadata() { |
|
super(true, |
|
nativeMetadataFormatName, |
|
"com.sun.imageio.plugins.wbmp.WBMPMetadataFormat", |
|
null, null); |
|
} |
|
|
|
public boolean isReadOnly() { |
|
return true; |
|
} |
|
|
|
public Node getAsTree(String formatName) { |
|
if (formatName.equals(nativeMetadataFormatName)) { |
|
return getNativeTree(); |
|
} else if (formatName.equals |
|
(IIOMetadataFormatImpl.standardMetadataFormatName)) { |
|
return getStandardTree(); |
|
} else { |
|
throw new IllegalArgumentException(I18N.getString("WBMPMetadata0")); |
|
} |
|
} |
|
|
|
private Node getNativeTree() { |
|
IIOMetadataNode root = |
|
new IIOMetadataNode(nativeMetadataFormatName); |
|
|
|
addChildNode(root, "WBMPType", new Integer(wbmpType)); |
|
addChildNode(root, "Width", new Integer(width)); |
|
addChildNode(root, "Height", new Integer(height)); |
|
|
|
return root; |
|
} |
|
|
|
public void setFromTree(String formatName, Node root) { |
|
throw new IllegalStateException(I18N.getString("WBMPMetadata1")); |
|
} |
|
|
|
public void mergeTree(String formatName, Node root) { |
|
throw new IllegalStateException(I18N.getString("WBMPMetadata1")); |
|
} |
|
|
|
public void reset() { |
|
throw new IllegalStateException(I18N.getString("WBMPMetadata1")); |
|
} |
|
|
|
private IIOMetadataNode addChildNode(IIOMetadataNode root, |
|
String name, |
|
Object object) { |
|
IIOMetadataNode child = new IIOMetadataNode(name); |
|
if (object != null) { |
|
child.setUserObject(object); |
|
child.setNodeValue(ImageUtil.convertObjectToString(object)); |
|
} |
|
root.appendChild(child); |
|
return child; |
|
} |
|
|
|
|
|
protected IIOMetadataNode getStandardChromaNode() { |
|
|
|
IIOMetadataNode node = new IIOMetadataNode("Chroma"); |
|
IIOMetadataNode subNode = new IIOMetadataNode("BlackIsZero"); |
|
subNode.setAttribute("value", "TRUE"); |
|
|
|
node.appendChild(subNode); |
|
return node; |
|
} |
|
|
|
|
|
protected IIOMetadataNode getStandardDimensionNode() { |
|
IIOMetadataNode dimension_node = new IIOMetadataNode("Dimension"); |
|
IIOMetadataNode node = null; |
|
|
|
// PixelAspectRatio not in image |
|
|
|
node = new IIOMetadataNode("ImageOrientation"); |
|
node.setAttribute("value", "Normal"); |
|
dimension_node.appendChild(node); |
|
|
|
return dimension_node; |
|
} |
|
|
|
} |