src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java

Print this page




 109                    (IIOMetadataFormatImpl.standardMetadataFormatName)) {
 110             return getStandardTree();
 111         } else {
 112             throw new IllegalArgumentException(I18N.getString("BMPMetadata0"));
 113         }
 114     }
 115 
 116     private String toISO8859(byte[] data) {
 117         try {
 118             return new String(data, "ISO-8859-1");
 119         } catch (UnsupportedEncodingException e) {
 120             return "";
 121         }
 122     }
 123 
 124     private Node getNativeTree() {
 125         IIOMetadataNode root =
 126             new IIOMetadataNode(nativeMetadataFormatName);
 127 
 128         addChildNode(root, "BMPVersion", bmpVersion);
 129         addChildNode(root, "Width", new Integer(width));
 130         addChildNode(root, "Height", new Integer(height));
 131         addChildNode(root, "BitsPerPixel", new Short(bitsPerPixel));
 132         addChildNode(root, "Compression", new Integer(compression));
 133         addChildNode(root, "ImageSize", new Integer(imageSize));
 134 
 135         IIOMetadataNode node = addChildNode(root, "PixelsPerMeter", null);
 136         addChildNode(node, "X", new Integer(xPixelsPerMeter));
 137         addChildNode(node, "Y", new Integer(yPixelsPerMeter));
 138 
 139         addChildNode(root, "ColorsUsed", new Integer(colorsUsed));
 140         addChildNode(root, "ColorsImportant", new Integer(colorsImportant));
 141 
 142         int version = 0;
 143         for (int i = 0; i < bmpVersion.length(); i++)
 144             if (Character.isDigit(bmpVersion.charAt(i)))
 145                 version = bmpVersion.charAt(i) -'0';
 146 
 147         if (version >= 4) {
 148             node = addChildNode(root, "Mask", null);
 149             addChildNode(node, "Red", new Integer(redMask));
 150             addChildNode(node, "Green", new Integer(greenMask));
 151             addChildNode(node, "Blue", new Integer(blueMask));
 152             addChildNode(node, "Alpha", new Integer(alphaMask));
 153 
 154             addChildNode(root, "ColorSpaceType", new Integer(colorSpace));
 155 
 156             node = addChildNode(root, "CIEXYZEndPoints", null);
 157             addXYZPoints(node, "Red", redX, redY, redZ);
 158             addXYZPoints(node, "Green", greenX, greenY, greenZ);
 159             addXYZPoints(node, "Blue", blueX, blueY, blueZ);
 160 
 161             node = addChildNode(root, "Intent", new Integer(intent));
 162         }
 163 
 164         // Palette
 165         if ((palette != null) && (paletteSize > 0)) {
 166             node = addChildNode(root, "Palette", null);
 167             int numComps = palette.length / paletteSize;
 168 
 169             for (int i = 0, j = 0; i < paletteSize; i++) {
 170                 IIOMetadataNode entry =
 171                     addChildNode(node, "PaletteEntry", null);
 172                 red = palette[j++] & 0xff;
 173                 green = palette[j++] & 0xff;
 174                 blue = palette[j++] & 0xff;
 175                 addChildNode(entry, "Red", new Byte((byte)red));
 176                 addChildNode(entry, "Green", new Byte((byte)green));
 177                 addChildNode(entry, "Blue", new Byte((byte)blue));
 178                 if (numComps == 4)
 179                     addChildNode(entry, "Alpha",
 180                                  new Byte((byte)(palette[j++] & 0xff)));
 181             }




 109                    (IIOMetadataFormatImpl.standardMetadataFormatName)) {
 110             return getStandardTree();
 111         } else {
 112             throw new IllegalArgumentException(I18N.getString("BMPMetadata0"));
 113         }
 114     }
 115 
 116     private String toISO8859(byte[] data) {
 117         try {
 118             return new String(data, "ISO-8859-1");
 119         } catch (UnsupportedEncodingException e) {
 120             return "";
 121         }
 122     }
 123 
 124     private Node getNativeTree() {
 125         IIOMetadataNode root =
 126             new IIOMetadataNode(nativeMetadataFormatName);
 127 
 128         addChildNode(root, "BMPVersion", bmpVersion);
 129         addChildNode(root, "Width", width);
 130         addChildNode(root, "Height", height);
 131         addChildNode(root, "BitsPerPixel", new Short(bitsPerPixel));
 132         addChildNode(root, "Compression", compression);
 133         addChildNode(root, "ImageSize", imageSize);
 134 
 135         IIOMetadataNode node = addChildNode(root, "PixelsPerMeter", null);
 136         addChildNode(node, "X", xPixelsPerMeter);
 137         addChildNode(node, "Y", yPixelsPerMeter);
 138 
 139         addChildNode(root, "ColorsUsed", colorsUsed);
 140         addChildNode(root, "ColorsImportant", colorsImportant);
 141 
 142         int version = 0;
 143         for (int i = 0; i < bmpVersion.length(); i++)
 144             if (Character.isDigit(bmpVersion.charAt(i)))
 145                 version = bmpVersion.charAt(i) -'0';
 146 
 147         if (version >= 4) {
 148             node = addChildNode(root, "Mask", null);
 149             addChildNode(node, "Red", redMask);
 150             addChildNode(node, "Green", greenMask);
 151             addChildNode(node, "Blue", blueMask);
 152             addChildNode(node, "Alpha", alphaMask);
 153 
 154             addChildNode(root, "ColorSpaceType", colorSpace);
 155 
 156             node = addChildNode(root, "CIEXYZEndPoints", null);
 157             addXYZPoints(node, "Red", redX, redY, redZ);
 158             addXYZPoints(node, "Green", greenX, greenY, greenZ);
 159             addXYZPoints(node, "Blue", blueX, blueY, blueZ);
 160 
 161             node = addChildNode(root, "Intent", intent);
 162         }
 163 
 164         // Palette
 165         if ((palette != null) && (paletteSize > 0)) {
 166             node = addChildNode(root, "Palette", null);
 167             int numComps = palette.length / paletteSize;
 168 
 169             for (int i = 0, j = 0; i < paletteSize; i++) {
 170                 IIOMetadataNode entry =
 171                     addChildNode(node, "PaletteEntry", null);
 172                 red = palette[j++] & 0xff;
 173                 green = palette[j++] & 0xff;
 174                 blue = palette[j++] & 0xff;
 175                 addChildNode(entry, "Red", new Byte((byte)red));
 176                 addChildNode(entry, "Green", new Byte((byte)green));
 177                 addChildNode(entry, "Blue", new Byte((byte)blue));
 178                 if (numComps == 4)
 179                     addChildNode(entry, "Alpha",
 180                                  new Byte((byte)(palette[j++] & 0xff)));
 181             }