Java Examples for com.sun.media.jai.codec.ImageEncodeParam

The following java examples will help you to understand the usage of com.sun.media.jai.codec.ImageEncodeParam. These source code samples are taken from different open source projects.

Example 1
Project: cosmocode-image-filtering-master  File: JAIImageFiltering.java View source code
/** format can be
     * png
     * pnm
     * tiff
     * bmp
     * jpeg
     */
public boolean writeToStream(java.io.OutputStream out, String format) {
    if (ro == null)
        return false;
    if (format == null)
        format = "";
    ImageEncodeParam iep = null;
    if (format.toLowerCase().equals("png")) {
        iep = null;
    } else if (format.toLowerCase().equals("pnm")) {
        iep = new PNMEncodeParam();
    } else if (format.toLowerCase().equals("tiff")) {
        iep = new TIFFEncodeParam();
    } else if (format.toLowerCase().equals("bmp")) {
        iep = new BMPEncodeParam();
    } else if (format.toLowerCase().equals("jpeg")) {
        iep = new JPEGEncodeParam();
        ((JPEGEncodeParam) iep).setQuality(quality);
    } else
        format = null;
    EncodeDescriptor.create(ro, out, format, iep, null);
    return true;
}
Example 2
Project: ProcessPuzzleFramework-master  File: AddRelatedArtifactCommand.java View source code
private ImageEncodeParam getJpegEncodeParam() {
    JPEGEncodeParam encodeParam = null;
    try {
        BufferedImage image = ImageIO.read(new File(filePath));
        JPEGImageEncoder jpegEncoder = JPEGCodec.createJPEGEncoder(new FileOutputStream(filePath));
        encodeParam = jpegEncoder.getDefaultJPEGEncodeParam(image);
        encodeParam.setQuality(0.99f, false);
        encodeParam.setHorizontalSubsampling(0, 1);
        encodeParam.setHorizontalSubsampling(1, 1);
        encodeParam.setHorizontalSubsampling(2, 1);
        encodeParam.setVerticalSubsampling(0, 1);
        encodeParam.setVerticalSubsampling(1, 1);
        encodeParam.setVerticalSubsampling(2, 1);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return (ImageEncodeParam) encodeParam;
}
Example 3
Project: platform2-master  File: ImageEncoderBean.java View source code
/**
	 * Creates new image with the desired width and height and encodes it into a image using the 
   * passed mime type. Writes it to the passed output stream.   
   * The input stream should be a image with the same mimetype. 
   * The implementation uses the JAI library.
	 * @param mimeType
   * @param outputMimeType
	 * @param input
	 * @param output
	 * @param width
	 * @param heigth
	 */
private void handleMimeType(String inputMimeType, String outputMimeType, InputStream input, OutputStream output, int width, int heigth) throws IOException {
    PlanarImage image = JAI.create("stream", new MemoryCacheSeekableStream(new BufferedInputStream(input)));
    // scale image
    PlanarImage modifiedImage = createImageWithSize(image, width, heigth);
    ImageEncodeParam encodeParam = getEncoderParam(inputMimeType, outputMimeType, image);
    com.sun.media.jai.codec.ImageEncoder imageEncoder;
    String jaiMimeType = getMimeTypeForJai(outputMimeType);
    if (ImageEncoder.UNKNOWN_MIME_TYPE.equals(jaiMimeType)) {
        throw new IOException("Mime type " + outputMimeType + " not recognized by JAI");
    }
    imageEncoder = ImageCodec.createImageEncoder(jaiMimeType, output, encodeParam);
    imageEncoder.encode(modifiedImage);
}
Example 4
Project: fcrepo-before33-master  File: ImageManipulation.java View source code
private void outputImage(ImageProcessor ip, OutputStream out, String outputMimeType) throws Exception {
    if (outputMimeType.equals("image/gif")) {
        if (!alreadyConvertedToRGB) {
            ip = ip.convertToRGB();
        }
        MedianCut mc = new MedianCut((int[]) ip.getPixels(), ip.getWidth(), ip.getHeight());
        ip = mc.convertToByte(256);
        ImagePlus imp = new ImagePlus("temp", ip);
        FileInfo fi = imp.getFileInfo();
        byte pixels[] = (byte[]) imp.getProcessor().getPixels();
        GifEncoder ge = new GifEncoder(fi.width, fi.height, pixels, fi.reds, fi.greens, fi.blues);
        ge.write(out);
    } else {
        ImageEncodeParam param = null;
        String format = null;
        if (outputMimeType.equals("image/jpeg")) {
            param = new JPEGEncodeParam();
            format = "JPEG";
        } else if (outputMimeType.equals("image/tiff")) {
            param = new TIFFEncodeParam();
            format = "TIFF";
        } else if (outputMimeType.equals("image/bmp")) {
            param = new BMPEncodeParam();
            format = "BMP";
        } else if (outputMimeType.equals("image/png")) {
            param = new PNGEncodeParam.RGB();
            format = "PNG";
        }
        ImageCodec.createImageEncoder(format, out, param).encode(JAI.create("AWTImage", ip.createImage()));
    }
}
Example 5
Project: Hphoto-master  File: ProcessImage.java View source code
@SuppressWarnings("unchecked")
public void processRequest(HttpServletRequest request, HttpServletResponse response) {
    Map<String, CharSequence> map = new HashMap<String, CharSequence>();
    map.put(HphotoParam.USER.toString(), request.getParameter(HphotoParam.USER.toString()));
    map.put(HphotoParam.ALBUM.toString(), request.getParameter(HphotoParam.ALBUM.toString()));
    map.put(HphotoParam.IMAGE_ID.toString(), request.getParameter(HphotoParam.IMAGE_ID.toString()));
    map.put(HphotoParam.IMAGE_CORP.toString(), request.getParameter(HphotoParam.IMAGE_CORP.toString()));
    map.put(HphotoParam.IMAGE_MAX.toString(), request.getParameter(HphotoParam.IMAGE_MAX.toString()));
    map.put(HphotoParam.IMAGE_QUALITY.toString(), request.getParameter(HphotoParam.IMAGE_QUALITY.toString()));
    String path = null;
    int what = FOR_SINGAL_IMAGE;
    //if user,album,id						,for orinigal file
    //if user,album,id,corp,max,high		,for album image
    //if user,album,id,max,high				,for a raised image
    //if user,corp,max						,for a user image
    String id = (String) map.get(HphotoParam.IMAGE_ID.toString());
    String user = (String) map.get(HphotoParam.USER.toString());
    String maxStr = (String) map.get(HphotoParam.IMAGE_MAX.toString());
    String album = (String) map.get(HphotoParam.ALBUM.toString());
    String corp = (String) map.get(HphotoParam.IMAGE_CORP.toString());
    assert (user != null);
    if (!inSize(maxStr)) {
        return;
    }
    if (//for a user image
    map.get(HphotoParam.ALBUM.toString()) == null) {
        path = user;
        what = this.FOR_USER_IMAGE;
    } else if (//for album image
    corp != null && corp.equals("c")) {
        assert (album != null);
        path = user + "/" + album;
        what = this.FOR_ALBUM_IMAGE;
    } else if (//for a raised image
    maxStr != null) {
        assert (id != null);
        assert (album != null);
        path = user + "/" + album + "/" + id + maxStr;
        what = this.FOR_RAISE_IMAGE;
    } else {
        path = user + "/" + album + "/" + id;
    }
    ByteArrayOutputStream bo = null;
    BufferedImage image = null;
    ImageWriteable imageWriter = (ImageWriteable) cache.get(path);
    //if not incache
    if (imageWriter == null) {
        //if is album
        if (what == this.FOR_ALBUM_IMAGE) {
            imageWriter = getAlbumImage(user, album, null, maxStr);
            if (imageWriter != null) {
                cache.put(path, imageWriter);
            }
        } else {
            ImageStream iStream = new ImageStream();
            bo = (ByteArrayOutputStream) iStream.getStream(user, album, id);
            if (bo != null && bo.size() > 0) {
                try {
                    if (what != FOR_SINGAL_IMAGE) {
                        image = ImageManipulation.getImage(new ByteArrayInputStream(bo.toByteArray()));
                        int oWidth = image.getWidth();
                        int oHeight = image.getHeight();
                        int max = 166;
                        try {
                            max = Integer.parseInt(maxStr);
                        } catch (NumberFormatException ne) {
                        }
                        if (maxStr != null) {
                            Raise raise = new Raise(oWidth, oHeight);
                            image = raise.action(max, image);
                        }
                        bo = new ByteArrayOutputStream();
                        JPEGEncodeParam jpegParam = new JPEGEncodeParam();
                        jpegParam.setQuality(1.0f);
                        ImageEncodeParam param = (ImageEncodeParam) jpegParam;
                        ImageCodec.createImageEncoder(iStream.getFileType(), bo, param).encode(image);
                    }
                    imageWriter = new ImageWriteable(iStream.getFileName(), iStream.getFileType(), bo.toByteArray());
                    cache.put(path, imageWriter);
                    image = null;
                } catch (Exception e) {
                } finally {
                    try {
                        bo.close();
                        bo = null;
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            } else {
                response.setStatus(HttpServletResponse.SC_NOT_FOUND);
                return;
            }
        }
    } else if (//if is album
    what == this.FOR_ALBUM_IMAGE) {
        imageWriter = getAlbumImage(user, album, null, maxStr);
        if (imageWriter != null) {
            cache.put(path, imageWriter);
        }
    }
    if (imageWriter != null) {
        try {
            response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(imageWriter.getName().getBytes("UTF-8"), "ISO8859-1") + "\"");
            response.setContentType("image/jpeg");
            response.setHeader("Content-Length", Integer.toString(imageWriter.getSize()));
            response.setHeader("Cache-Control", "public");
            Calendar c = Calendar.getInstance();
            c.add(Calendar.DAY_OF_MONTH, 1);
            response.setHeader("Expires", expiresFormat.format(new Date(c.getTimeInMillis())));
            response.setHeader("Date", expiresFormat.format(new Date()));
            OutputStream os = response.getOutputStream();
            os.write(imageWriter.getBytes(), 0, imageWriter.getSize());
            os.flush();
            os.close();
        } catch (Exception e) {
            response.setStatus(HttpServletResponse.SC_NOT_FOUND);
        } finally {
        }
    } else {
        response.setStatus(HttpServletResponse.SC_NOT_FOUND);
    }
    try {
        if (bo != null)
            bo.close();
    } catch (IOException e) {
    }
}
Example 6
Project: com.idega.graphics-master  File: ImageEncoderBean.java View source code
/**
	 * Creates new image with the desired width and height and encodes it into a image using the 
   * passed mime type. Writes it to the passed output stream.   
   * The input stream should be a image with the same mimetype. 
   * The implementation uses the JAI library.
	 * @param mimeType
   * @param outputMimeType
	 * @param input
	 * @param output
	 * @param width
	 * @param heigth
	 */
private void handleMimeType(String inputMimeType, String outputMimeType, InputStream input, OutputStream output, int width, int heigth) throws IOException {
    PlanarImage image = JAI.create("stream", new MemoryCacheSeekableStream(new BufferedInputStream(input)));
    // scale image
    PlanarImage modifiedImage = createImageWithSize(image, width, heigth);
    ImageEncodeParam encodeParam = getEncoderParam(inputMimeType, outputMimeType, image);
    com.sun.media.jai.codec.ImageEncoder imageEncoder;
    String jaiMimeType = getMimeTypeForJai(outputMimeType);
    if (UNKNOWN_MIME_TYPE.equals(jaiMimeType)) {
        throw new IOException("Mime type " + outputMimeType + " not recognized by JAI");
    }
    imageEncoder = ImageCodec.createImageEncoder(jaiMimeType, output, encodeParam);
    imageEncoder.encode(modifiedImage);
}
Example 7
Project: fcrepo-master  File: ImageManipulation.java View source code
private void outputImage(ImageProcessor ip, OutputStream out, String outputMimeType) throws Exception {
    if (outputMimeType.equals("image/gif")) {
        if (!alreadyConvertedToRGB) {
            ip = ip.convertToRGB();
        }
        MedianCut mc = new MedianCut((int[]) ip.getPixels(), ip.getWidth(), ip.getHeight());
        ip = mc.convertToByte(256);
        ImagePlus imp = new ImagePlus("temp", ip);
        FileInfo fi = imp.getFileInfo();
        byte pixels[] = (byte[]) imp.getProcessor().getPixels();
        GifEncoder ge = new GifEncoder(fi.width, fi.height, pixels, fi.reds, fi.greens, fi.blues);
        ge.write(out);
    } else {
        ImageEncodeParam param = null;
        String format = null;
        if (outputMimeType.equals("image/jpeg")) {
            param = new JPEGEncodeParam();
            format = "JPEG";
        } else if (outputMimeType.equals("image/tiff")) {
            param = new TIFFEncodeParam();
            format = "TIFF";
        } else if (outputMimeType.equals("image/bmp")) {
            param = new BMPEncodeParam();
            format = "BMP";
        } else if (outputMimeType.equals("image/png")) {
            param = new PNGEncodeParam.RGB();
            format = "PNG";
        }
        ImageCodec.createImageEncoder(format, out, param).encode(JAI.create("AWTImage", ip.createImage()));
    }
}
Example 8
Project: openmap-master  File: XTIFFCodec.java View source code
public boolean canEncodeImage(RenderedImage im, ImageEncodeParam param) {
    return true;
}
Example 9
Project: openjump-core-rels-master  File: XTIFFCodec.java View source code
public boolean canEncodeImage(RenderedImage im, ImageEncodeParam param) {
    return true;
}