/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.sanselan; import java.io.IOException; import org.apache.sanselan.icc.IccProfileInfo; import org.apache.sanselan.icc.IccProfileParser; import com.google.code.appengine.awt.color.ColorSpace; import com.google.code.appengine.awt.color.ICC_ColorSpace; import com.google.code.appengine.awt.color.ICC_Profile; import com.google.code.appengine.awt.image.BufferedImage; public class ImageDump { private String colorSpaceTypeToName(ColorSpace cs) { // System.out.println(prefix + ": " + "type: " // + cs.getType() ); switch (cs.getType()) { case ColorSpace.TYPE_CMYK : return "TYPE_CMYK"; case ColorSpace.TYPE_RGB : return "TYPE_RGB"; case ColorSpace.CS_sRGB : return "CS_sRGB"; case ColorSpace.CS_GRAY : return "CS_GRAY"; case ColorSpace.CS_CIEXYZ : return "CS_CIEXYZ"; case ColorSpace.CS_LINEAR_RGB : return "CS_LINEAR_RGB"; case ColorSpace.CS_PYCC : return "CS_PYCC"; } return "unknown"; } public void dumpColorSpace(String prefix, ColorSpace cs) throws ImageReadException, IOException { System.out.println(prefix + ": " + "type: " + cs.getType() + " (" + colorSpaceTypeToName(cs) + ")"); if (!(cs instanceof ICC_ColorSpace)) { System.out.println(prefix + ": " + "Unknown ColorSpace: " + cs.getClass().getName()); return; } ICC_ColorSpace fICC_ColorSpace = (ICC_ColorSpace) cs; ICC_Profile fICC_Profile = fICC_ColorSpace.getProfile(); byte bytes[] = fICC_Profile.getData(); IccProfileParser parser = new IccProfileParser(); IccProfileInfo info = parser.getICCProfileInfo(bytes); info.dump(prefix); } public void dump(BufferedImage src) throws ImageReadException, IOException { dump("", src); } public void dump(String prefix, BufferedImage src) throws ImageReadException, IOException { System.out.println(prefix + ": " + "dump"); dumpColorSpace(prefix, src.getColorModel().getColorSpace()); dumpBIProps(prefix, src); } public void dumpBIProps(String prefix, BufferedImage src) { String keys[] = src.getPropertyNames(); if (keys == null) { System.out.println(prefix + ": no props"); return; } for (int i = 0; i < keys.length; i++) { String key = keys[i]; System.out.println(prefix + ": " + key + ": " + src.getProperty(key)); } } }