style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Cargar imagen CMYK java

Hola a todos,

Me gustaria que me orientaran sobre la carga de imagenes usando java, tenemos un sistema en cual una de sus opciones es subir imagenes desde web y usamos java para los servicios, el problema que salio fue al tratar de subir una imagen que esta como CMYK al parecer, ya que otras imagenes las deja subir y mostrar sin problemas.

eh buscado por la web pero las cosas que ponen no son muy claras para mi, descargue un .jar (CMYKJPEGImageReader) y en su documentacion vi que se pueden crear imagenes de ese tipo o incluso leerlas solo que el codigo que tengo implementado obtengo el width y height, tengo este codigo en un catch si la imagen es cmyk (en caso de serla):

ImageInputStream inputStream = null;
ImageReader reader = ImageIO.getImageReadersByFormatName("JPEG").next();
inputStream = (uploadedInputStream instanceof ImageInputStream) ? (ImageInputStream) uploadedInputStream: ImageIO.createImageInputStream(uploadedInputStream);
reader.setInput(inputStream);
Raster raster = reader.readRaster(0, null);
BufferedImage image = CMYKJPEGImageReader.createRGBImageFromCMYK(raster, null);
ByteArrayOutputStream output = new ByteArrayOutputStream();
ImageIO.write(image, "jpeg", output);
InputStream is = new ByteArrayInputStream(output.toByteArray());
bufimage = ImageIO.read(is);

la mayor parte del codigo la saque de una pagina pero el codigo me tira el siguiente error:


Could not load org.monte.media.io.ByteArrayImageInputStream. La eventual traza de pila que sigue ha sido motivada por un error lanzado con motivos de depuración así como para intentar terminar el hilo que motivó el acceso ilegal y no tiene impacto funcional.

despues del catch tengo el codigo que es funcional:

int h = bufimage.getHeight();
                                int w = bufimage.getWidth();
                                if (w > maxW || h > maxH) {
                                        if (w > h) {
                                                BufferedImage bISmallImage = Scalr.resize(bufimage, Scalr.Method.AUTOMATIC, maxW,
                                                                h - (((100 * (w - maxW) / w) * h) / 100));
                                                ImageIO.write(bISmallImage, ext, smallImage);
                                        } else {
                                                BufferedImage bISmallImage = Scalr.resize(bufimage, Scalr.Method.AUTOMATIC,
                                                                w - (((100 * (h - maxH) / h) * w) / 100), maxH);
                                                ImageIO.write(bISmallImage, ext, smallImage);
                                        }
                                } else {
                                        ImageIO.write(bufimage, ext, smallImage);
                                }
                                correcto = true;

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">