zoukankan      html  css  js  c++  java
  • java创建缩略图

    void createThumbnail(String filename, int thumbWidth, int thumbHeight,
                 int quality, String outFilename)
            throws InterruptedException, FileNotFoundException, IOException
    {
            // load image from filename
            Image image = Toolkit.getDefaultToolkit().getImage(filename);
            MediaTracker mediaTracker = new MediaTracker(new Container());
            mediaTracker.addImage(image, 0);
            mediaTracker.waitForID(0);
            // use this to test for errors at this point:
        // System.out.println(mediaTracker.isErrorAny());
            // determine thumbnail size from WIDTH and HEIGHT
            double thumbRatio = (double)thumbWidth / (double)thumbHeight;
            int imageWidth = image.getWidth(null);
            int imageHeight = image.getHeight(null);
            double imageRatio = (double)imageWidth / (double)imageHeight;
            if (thumbRatio < imageRatio) {
                thumbHeight = (int)(thumbWidth / imageRatio);
            } else {
                thumbWidth = (int)(thumbHeight * imageRatio);
            }
        
            // draw original image to thumbnail image object and
            // scale it to the new size on-the-fly
            BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight,
            BufferedImage.TYPE_INT_RGB);
            Graphics2D graphics2D = thumbImage.createGraphics();
            graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
            RenderingHints.VALUE_INTERPOLATION_BILINEAR);
            graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
      
            // save thumbnail image to outFilename
            BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
            quality = Math.max(0, Math.min(quality, 100));
            param.setQuality((float)quality / 100.0f, false);
            encoder.setJPEGEncodeParam(param);
            encoder.encode(thumbImage);
            out.close();
    }
  • 相关阅读:
    Spring整合Junit测试
    使用GDAL工具对卫星数据进行影像配准
    Java排序算法&nbsp;插入排序
    使用GDAL下载并转换SRTM的DEM数据(二)
    网站备案流程
    Java排序算法_选择排序
    Java排序算法&nbsp;归并排序
    双十一:是消费力的提升,还是消费结构缺陷的暴露?
    Java排序算法&nbsp;希尔排序
    Java排序算法&nbsp;堆排序
  • 原文地址:https://www.cnblogs.com/birkhoff/p/4530966.html
Copyright © 2011-2022 走看看