|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
package com.sun.imageio.plugins.gif; |
|
|
|
import java.util.Arrays; |
|
import javax.imageio.ImageTypeSpecifier; |
|
import javax.imageio.metadata.IIOMetadataFormat; |
|
import javax.imageio.metadata.IIOMetadataFormatImpl; |
|
|
|
public class GIFStreamMetadataFormat extends IIOMetadataFormatImpl { |
|
|
|
private static IIOMetadataFormat instance = null; |
|
|
|
private GIFStreamMetadataFormat() { |
|
super(GIFStreamMetadata.nativeMetadataFormatName, |
|
CHILD_POLICY_SOME); |
|
|
|
|
|
addElement("Version", GIFStreamMetadata.nativeMetadataFormatName, |
|
CHILD_POLICY_EMPTY); |
|
addAttribute("Version", "value", |
|
DATATYPE_STRING, true, null, |
|
Arrays.asList(GIFStreamMetadata.versionStrings)); |
|
|
|
|
|
addElement("LogicalScreenDescriptor", |
|
GIFStreamMetadata.nativeMetadataFormatName, |
|
CHILD_POLICY_EMPTY); |
|
addAttribute("LogicalScreenDescriptor", "logicalScreenWidth", |
|
DATATYPE_INTEGER, true, null, |
|
"1", "65535", true, true); |
|
addAttribute("LogicalScreenDescriptor", "logicalScreenHeight", |
|
DATATYPE_INTEGER, true, null, |
|
"1", "65535", true, true); |
|
addAttribute("LogicalScreenDescriptor", "colorResolution", |
|
DATATYPE_INTEGER, true, null, |
|
"1", "8", true, true); |
|
addAttribute("LogicalScreenDescriptor", "pixelAspectRatio", |
|
DATATYPE_INTEGER, true, null, |
|
"0", "255", true, true); |
|
|
|
|
|
addElement("GlobalColorTable", |
|
GIFStreamMetadata.nativeMetadataFormatName, |
|
2, 256); |
|
addAttribute("GlobalColorTable", "sizeOfGlobalColorTable", |
|
DATATYPE_INTEGER, true, null, |
|
Arrays.asList(GIFStreamMetadata.colorTableSizes)); |
|
addAttribute("GlobalColorTable", "backgroundColorIndex", |
|
DATATYPE_INTEGER, true, null, |
|
"0", "255", true, true); |
|
addBooleanAttribute("GlobalColorTable", "sortFlag", |
|
false, false); |
|
|
|
|
|
addElement("ColorTableEntry", "GlobalColorTable", |
|
CHILD_POLICY_EMPTY); |
|
addAttribute("ColorTableEntry", "index", |
|
DATATYPE_INTEGER, true, null, |
|
"0", "255", true, true); |
|
addAttribute("ColorTableEntry", "red", |
|
DATATYPE_INTEGER, true, null, |
|
"0", "255", true, true); |
|
addAttribute("ColorTableEntry", "green", |
|
DATATYPE_INTEGER, true, null, |
|
"0", "255", true, true); |
|
addAttribute("ColorTableEntry", "blue", |
|
DATATYPE_INTEGER, true, null, |
|
"0", "255", true, true); |
|
} |
|
|
|
public boolean canNodeAppear(String elementName, |
|
ImageTypeSpecifier imageType) { |
|
return true; |
|
} |
|
|
|
public static synchronized IIOMetadataFormat getInstance() { |
|
if (instance == null) { |
|
instance = new GIFStreamMetadataFormat(); |
|
} |
|
return instance; |
|
} |
|
} |