COMMarkerSegmentpublic class COMMarkerSegment extends MarkerSegment A Comment marker segment. Retains an array of bytes representing the
comment data as it is read from the stream. If the marker segment is
constructed from a String, then local default encoding is assumed
when creating the byte array. If the marker segment is created from
an IIOMetadataNode , the user object, if present is
assumed to be a byte array containing the comment data. If there is
no user object then the comment attribute is used to create the
byte array, again assuming the default local encoding. |
Fields Summary |
---|
private static final String | ENCODING |
Constructors Summary |
---|
COMMarkerSegment(JPEGBuffer buffer)Constructs a marker segment from the given buffer, which contains
data from an ImageInputStream . This is used when
reading metadata from a stream.
super(buffer);
loadData(buffer);
| COMMarkerSegment(String comment)Constructs a marker segment from a String. This is used when
modifying metadata from a non-native tree and when transcoding.
The default encoding is used to construct the byte array.
super(JPEG.COM);
data = comment.getBytes(); // Default encoding
| COMMarkerSegment(Node node)Constructs a marker segment from a native tree node. If the node
is an IIOMetadataNode and contains a user object,
that object is used rather than the string attribute. If the
string attribute is used, the default encoding is used.
super(JPEG.COM);
if (node instanceof IIOMetadataNode) {
IIOMetadataNode ourNode = (IIOMetadataNode) node;
data = (byte []) ourNode.getUserObject();
}
if (data == null) {
String comment =
node.getAttributes().getNamedItem("comment").getNodeValue();
if (comment != null) {
data = comment.getBytes(); // Default encoding
} else {
throw new IIOInvalidTreeException("Empty comment node!", node);
}
}
|
Methods Summary |
---|
java.lang.String | getComment()Returns the array encoded as a String, using ISO-Latin-1 encoding.
If an application needs another encoding, the data array must be
consulted directly.
try {
return new String (data, ENCODING);
} catch (UnsupportedEncodingException e) {} // Won't happen
return null;
| javax.imageio.metadata.IIOMetadataNode | getNativeNode()Returns an IIOMetadataNode containing the data array
as a user object and a string encoded using ISO-8895-1, as an
attribute.
IIOMetadataNode node = new IIOMetadataNode("com");
node.setAttribute("comment", getComment());
if (data != null) {
node.setUserObject(data.clone());
}
return node;
| void | print()
printTag("COM");
System.out.println("<" + getComment() + ">");
| void | write(javax.imageio.stream.ImageOutputStream ios)Writes the data for this segment to the stream in
valid JPEG format, directly from the data array.
length = 2 + data.length;
writeTag(ios);
ios.write(data);
|
|