此类需要引入一个包和ISOcoated_v2_300_eci.icc(CMYK的位图);
连接为:https://download.csdn.net/download/xiaozukun/11107461
import java.awt.color.ColorSpace;
import java.awt.color.ICC_ColorSpace;
import java.awt.color.ICC_Profile;
import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import javax.imageio.IIOException;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.sanselan.ImageReadException;
import org.apache.sanselan.Sanselan;
import org.apache.sanselan.common.byteSources.ByteSource;
import org.apache.sanselan.common.byteSources.ByteSourceFile;
import org.apache.sanselan.formats.jpeg.JpegImageParser;
import org.apache.sanselan.formats.jpeg.segments.UnknownSegment;
public class ImageTool {
private static boolean hasAdobeMarker = false;
private static Log log = LogFactory.getLog(ImageTool.class);
/*
*返回图片的真实格式,此方法如果读取的图片为svg格式会返回空值
*/
public static String getRealFormatName(Object object) throws Exception {
ImageInputStream iis = ImageIO.createImageInputStream(object);
Iterator<ImageReader> iterator = ImageIO.getImageReaders(iis);
while (iterator.hasNext()) {
ImageReader reader = (ImageReader) iterator.next();
return reader.getFormatName();
}
return null;
}
/*
*传图片的路径,和要将图片转成的格式
*/
public static void convertTif(String fileName, String extension) {
try {
File file = new File(fileName);
if (file.exists() == false) {
System.out.println("File not exist!!!");
return;
}
Buf