📄 pngmetadataformat.java
字号:
/* * @(#)PNGMetadataFormat.java 1.10 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.imageio.plugins.png;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.ListResourceBundle;import javax.imageio.ImageTypeSpecifier;import javax.imageio.metadata.IIOMetadataFormat;import javax.imageio.metadata.IIOMetadataFormatImpl;public class PNGMetadataFormat extends IIOMetadataFormatImpl { private static IIOMetadataFormat instance = null; private static String VALUE_0 = "0"; private static String VALUE_1 = "1"; private static String VALUE_12 = "12"; private static String VALUE_23 = "23"; private static String VALUE_31 = "31"; private static String VALUE_59 = "59"; private static String VALUE_60 = "60"; private static String VALUE_255 = "255"; private static String VALUE_MAX_16 = "65535"; // 2^16 - 1 private static String VALUE_MAX_32 = "2147483647"; // 2^32 - 1 private PNGMetadataFormat() { super(PNGMetadata.nativeMetadataFormatName, CHILD_POLICY_SOME); // root -> IHDR addElement("IHDR", PNGMetadata.nativeMetadataFormatName, CHILD_POLICY_EMPTY); addAttribute("IHDR", "width", DATATYPE_INTEGER, true, null, VALUE_1, VALUE_MAX_32, true, true); addAttribute("IHDR", "height", DATATYPE_INTEGER, true, null, VALUE_1, VALUE_MAX_32, true, true); addAttribute("IHDR", "bitDepth", DATATYPE_INTEGER, true, null, Arrays.asList(PNGMetadata.IHDR_bitDepths)); String[] colorTypes = { "Grayscale", "RGB", "Palette", "GrayAlpha", "RGBAlpha" }; addAttribute("IHDR", "colorType", DATATYPE_STRING, true, null, Arrays.asList(colorTypes)); addAttribute("IHDR", "compressionMethod", DATATYPE_STRING, true, null, Arrays.asList(PNGMetadata.IHDR_compressionMethodNames)); addAttribute("IHDR", "filterMethod", DATATYPE_STRING, true, null, Arrays.asList(PNGMetadata.IHDR_filterMethodNames)); addAttribute("IHDR", "interlaceMethod", DATATYPE_STRING, true, null, Arrays.asList(PNGMetadata.IHDR_interlaceMethodNames)); // root -> PLTE addElement("PLTE", PNGMetadata.nativeMetadataFormatName, 1, 256); // root -> PLTE -> PLTEEntry addElement("PLTEEntry", "PLTE", CHILD_POLICY_EMPTY); addAttribute("PLTEEntry", "index", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_255, true, true); addAttribute("PLTEEntry", "red", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_255, true, true); addAttribute("PLTEEntry", "green", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_255, true, true); addAttribute("PLTEEntry", "blue", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_255, true, true); // root -> bKGD addElement("bKGD", PNGMetadata.nativeMetadataFormatName, CHILD_POLICY_CHOICE); // root -> bKGD -> bKGD_Grayscale addElement("bKGD_Grayscale", "bKGD", CHILD_POLICY_EMPTY); addAttribute("bKGD_Grayscale", "gray", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); // root -> bKGD -> bKGD_RGB addElement("bKGD_RGB", "bKGD", CHILD_POLICY_EMPTY); addAttribute("bKGD_RGB", "red", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("bKGD_RGB", "green", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("bKGD_RGB", "blue", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); // root -> bKGD -> bKGD_Palette addElement("bKGD_Palette", "bKGD", CHILD_POLICY_EMPTY); addAttribute("bKGD_Palette", "index", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_255, true, true); // root -> cHRM addElement("cHRM", PNGMetadata.nativeMetadataFormatName, CHILD_POLICY_EMPTY); addAttribute("cHRM", "whitePointX", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("cHRM", "whitePointY", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("cHRM", "redX", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("cHRM", "redY", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("cHRM", "greenX", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("cHRM", "greenY", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("cHRM", "blueX", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); addAttribute("cHRM", "blueY", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); // root -> gAMA addElement("gAMA", PNGMetadata.nativeMetadataFormatName, CHILD_POLICY_EMPTY); addAttribute("gAMA", "value", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_32, true, true); // root -> hIST addElement("hIST", PNGMetadata.nativeMetadataFormatName, 1, 256); // root -> hISTEntry addElement("hISTEntry", "hIST", CHILD_POLICY_EMPTY); addAttribute("hISTEntry", "index", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_255, true, true); addAttribute("hISTEntry", "value", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_16, true, true); // root -> iCCP addElement("iCCP", PNGMetadata.nativeMetadataFormatName, CHILD_POLICY_EMPTY); addAttribute("iCCP", "profileName", DATATYPE_STRING, true, null); addAttribute("iCCP", "compressionMethod", DATATYPE_STRING, true, null, Arrays.asList(PNGMetadata.iCCP_compressionMethodNames)); addObjectValue("iCCP", byte.class, 0, Integer.MAX_VALUE); // root -> iTXt addElement("iTXt", PNGMetadata.nativeMetadataFormatName, 1, Integer.MAX_VALUE); // root -> iTXt -> iTXtEntry addElement("iTXtEntry", "iTXt", CHILD_POLICY_EMPTY); addAttribute("iTXtEntry", "keyword", DATATYPE_STRING, true, null); addBooleanAttribute("iTXtEntry", "compressionFlag", false, false); addAttribute("iTXtEntry", "compressionMethod", DATATYPE_STRING, true, null); addAttribute("iTXtEntry", "languageTag", DATATYPE_STRING, true, null); addAttribute("iTXtEntry", "translatedKeyword", DATATYPE_STRING, true, null); addAttribute("iTXtEntry", "text", DATATYPE_STRING, true, null); // root -> pHYS addElement("pHYS", PNGMetadata.nativeMetadataFormatName, CHILD_POLICY_EMPTY); addAttribute("pHYS", "pixelsPerUnitXAxis", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_32, true, true); addAttribute("pHYS", "pixelsPerUnitYAxis", DATATYPE_INTEGER, true, null, VALUE_0, VALUE_MAX_32, true, true); addAttribute("pHYS", "unitSpecifier", DATATYPE_STRING, true, null,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -