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();
    }
  • 相关阅读:
    eclipse的maven,添加依赖后无法自动下载相应的jar包
    eclipse一直不停building workplace
    数据结构-线性表(顺序存储)插入和删除节点的平均移动次数计算
    Git常用命令
    迷你商城后台管理系统————stage3项目部署测试汇总
    迷你商城后台管理系统————stage2核心代码实现
    迷你商城后台管理系统————stage1需求分析
    如何做需求分析?
    Linux中(Ubuntu18.04.x/CentOS)mysql8.0.x安装/配置/部署/启动
    在LINUX(Ubuntu 18.04.x、CentOS)下配置MySQL8.0.x
  • 原文地址:https://www.cnblogs.com/birkhoff/p/4530966.html
Copyright © 2011-2022 走看看