Java Image CMYK2RGB
来源:互联网 发布:天天时时彩计划软件 编辑:程序博客网 时间:2024/05/16 11:18
常用的方法1:private BufferedImage convertCMYK2RGB(BufferedImage image) throws IOException{ log.info("Converting a CYMK image to RGB"); //Create a new RGB image BufferedImage rgbImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_3BYTE_BGR); // then do a funky color convert ColorConvertOp op = new ColorConvertOp(null); op.filter(image, rgbImage); return rgbImage;}
常用的方法2:
File f = new File("/path/imagefile.jpg"); //Find a suitable ImageReader Iterator readers = ImageIO.getImageReadersByFormatName("JPEG"); ImageReader reader = null; while(readers.hasNext()) { reader = (ImageReader)readers.next(); if(reader.canReadRaster()) { break; } } //Stream the image file (the original CMYK image) ImageInputStream input = ImageIO.createImageInputStream(f); reader.setInput(input); //Read the image raster Raster raster = reader.readRaster(0, null); //Create a new RGB image BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_4BYTE_ABGR); //Fill the new image with the old raster bi.getRaster().setRect(raster); public static Image convertCMYK2RGB(File file) throws IOException{ Image image = null; try { image = ImageIO.read(file); } catch (Exception e) { ImageInputStream input = ImageIO.createImageInputStream(file); @SuppressWarnings("rawtypes") Iterator readers = ImageIO.getImageReaders(input); if(readers == null || !readers.hasNext()) { throw new RuntimeException("1 No ImageReaders found"); } ImageReader reader = (ImageReader) readers.next(); reader.setInput(input); Raster raster = reader.readRaster(0, null);//CMYK image = createJPEG4(raster); } return image; }
原文地址:http://stackoverflow.com/questions/2408613/problem-reading-jpeg-image-using-imageio-readfile-file