ResizePictureUtil.java 文件源码

java
阅读 26 收藏 0 点赞 0 评论 0

项目:lams 作者:
/**
    * Reads the original image, creates a resized copy of it and returns its input stream. largestDimension is the
    * largest dimension of the resized image, the other dimension is scaled accordingly.
    *
    * @param image
    *            original image
    * @param largestDimension
    *            the largest dimension of the resized image, the other dimension is scaled accordingly
    * @return
    * @throws IOException
    * @throws UploadImageGalleryFileException
    */
   public static InputStream resize(BufferedImage image, int largestDimension) throws IOException {
try {
    //resize to 150 pixels max
    BufferedImage outImage = Scalr.resize(image, Method.QUALITY, largestDimension);

    //set jpeg compression quality explicitly
    ImageWriter imageWriter = ImageIO.getImageWritersByFormatName("jpeg").next();
    ImageWriteParam jpgWriteParam = imageWriter.getDefaultWriteParam();
    jpgWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    jpgWriteParam.setCompressionQuality(.95f);

    // buffer all data in a circular buffer of infinite sizes
    CircularByteBuffer outputBuffer = new CircularByteBuffer(CircularByteBuffer.INFINITE_SIZE);
    ImageOutputStream ios = ImageIO.createImageOutputStream(outputBuffer.getOutputStream());
    imageWriter.setOutput(ios);
    IIOImage outputImage = new IIOImage(outImage, null, null);
    imageWriter.write(null, outputImage, jpgWriteParam);
    imageWriter.dispose();
    outputBuffer.getOutputStream().close();

    return outputBuffer.getInputStream();

} catch (IOException e) {
    log.error(e.getStackTrace());
    return null;
}
   }
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号