public RenderedImage convertCMYKtoRGB(byte[] bytes, String type, boolean fork) { ImageMagick imageMagick = getImageMagick(); if (!imageMagick.isEnabled()) { return null; } File inputFile = _fileUtil.createTempFile(type); File outputFile = _fileUtil.createTempFile(type); try { _fileUtil.write(inputFile, bytes); IMOperation imOperation = new IMOperation(); imOperation.addRawArgs("-format", "%[colorspace]"); imOperation.addImage(inputFile.getPath()); String[] output = imageMagick.identify(imOperation.getCmdArgs(), fork); if ((output.length == 1) && output[0].equalsIgnoreCase("CMYK")) { if (_log.isInfoEnabled()) { _log.info("The image is in the CMYK colorspace"); } imOperation = new IMOperation(); imOperation.addRawArgs("-colorspace", "RGB"); imOperation.addImage(inputFile.getPath()); imOperation.addImage(outputFile.getPath()); imageMagick.convert(imOperation.getCmdArgs(), fork); bytes = _fileUtil.getBytes(outputFile); return read(bytes, type); } } catch (Exception e) { if (_log.isErrorEnabled()) { _log.error(e, e); } } finally { _fileUtil.delete(inputFile); _fileUtil.delete(outputFile); } return null; }