zoukankan      html  css  js  c++  java
  • 图片剪贴工具类

    1.图片剪贴工具类:ImageCutUtil.java
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.UUID;
    import javax.imageio.ImageIO;
    public class ImageCutUtil {
      public static String cutImage(String srcPath, String name, int width, int height)throws IOException {
        File srcFile = new File(srcPath);
        BufferedImage image = ImageIO.read(srcFile);
        int srcWidth = image.getWidth(null);
        int srcHeight = image.getHeight(null);
        int newWidth = 0, newHeight = 0;
        int x = 0, y = 0;
        double scale_w = (double) width / srcWidth;
        double scale_h = (double) height / srcHeight;
        System.out.println("scale_w=" + scale_w + ",scale_h=" + scale_h);
        // 按原比例缩放图片
        if (scale_w < scale_h) {
          newHeight = height;
          newWidth = (int) (srcWidth * scale_h);
          x = (newWidth - width) / 2;
        } else {
          newHeight = (int) (srcHeight * scale_w);
          newWidth = width;
          y = (newHeight - height) / 2;
        }
        BufferedImage newImage = new BufferedImage(newWidth, newHeight,
        BufferedImage.TYPE_INT_RGB);
        newImage.getGraphics().drawImage(image.getScaledInstance(newWidth, newHeight,Image.SCALE_SMOOTH), 0, 0, null);
        // 保存缩放后的图片
        String fileSufix = srcFile.getName().substring(srcFile.getName().lastIndexOf(".") + 1);
        // String string = UUID.randomUUID().toString();//可以作为文件的名字Cname
        File destFile = new File(srcFile.getParent(), name + "." + fileSufix);
        // System.out.println(fileSufix);
        // System.out.println(destFile);
        // 保存裁剪后的图片
        ImageIO.write(newImage.getSubimage(x, y, width, height), fileSufix,destFile);
        return "/" + name+ "." + fileSufix;
      }
    }
     
    2.使用示例:
    String name = "F:/article_image/article_" + i + ".jpg";//本地路径
    String cName = "article_" + i + "_cut";//剪贴后的名字,不带后缀
    String cutImage = ImageCutUtil.cutImage(name, cName, 630, 320);//630:表示宽度, 320:表示高度
  • 相关阅读:
    Apollo,Python,Delphi与Oracle之间的神话关系
    Delphi语言获得生命的原因和过程
    cocos2d(x) HTML label ;CCHTML CCHTMLLabel
    不重启使XP环境变量生效
    对当下纷繁乱世的思考框架(核心与边缘,时间与成本)
    晚明一出,明朝不必再穿越了
    常用的Linux终端
    如何发布使用LGPL版Qt的商业软件
    如何制作一个类似Tiny Wings的游戏 Cocos2d-x 2.1.4
    文明之火熊熊燃烧,灼热乃至引燃了周边霉湿的柴草
  • 原文地址:https://www.cnblogs.com/yysbolg/p/7382837.html
Copyright © 2011-2022 走看看