zoukankan      html  css  js  c++  java
  • 图片压缩

    /**
    * ��������ͼ��
    */
    package utils;

    /**
    * @author advance
    *
    */
    import java.awt.Color;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.RenderingHints;
    import java.awt.image.BufferedImage;
    import java.io.File;

    public class ThumbnailGenerator {
    public static void main(String[] args) throws Exception {
    transform("C:\Users\Administrator\vspider\files\20190111\image\jpg\0a08179283e02baefc529affd2dd30fe.jpg","C:\Users\Administrator\Desktop\新建文件夹 (2)\aaa.jpg",200,300,1000);
    }

    public static void transform(String originalFile, String thumbnailFile, int thumbWidth, int thumbHeight, int quality) throws Exception
    {
    Image image = javax.imageio.ImageIO.read(new File(originalFile));

    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);
    }

    if(imageWidth < thumbWidth && imageHeight < thumbHeight)
    {
    thumbWidth = imageWidth;
    thumbHeight = imageHeight;
    }
    else if(imageWidth < thumbWidth)
    thumbWidth = imageWidth;
    else if(imageHeight < thumbHeight)
    thumbHeight = imageHeight;

    BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
    Graphics2D graphics2D = thumbImage.createGraphics();
    graphics2D.setBackground(Color.WHITE);
    graphics2D.setPaint(Color.WHITE);
    graphics2D.fillRect(0, 0, thumbWidth, thumbHeight);
    graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
    graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);

    javax.imageio.ImageIO.write(thumbImage, "JPG", new File(thumbnailFile));
    }
    }

  • 相关阅读:
    mongodb 查询缓慢问题
    java中的移位运算符总结
    git push到GitHub的时候遇到! [rejected] master -> master (non-fast-forward)的问题
    Docker映射详解,没问题了!
    Alibaba开源的Java诊断工具 -- Arthas
    SpringBoot 程序启动时将数据库的字典表加载进内存中
    [Tips] 批量解析电子发票的工具
    [Bugs] ModuleNotFoundError: No module named 'conda'
    [Tips] vs code 代码自动格式化
    [Record] electron windows下配置
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10255537.html
Copyright © 2011-2022 走看看