import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;/*** 图片工具类*/
public class ImageUtil
{/*** 裁剪PNG图片工具类** @param fromFile     源文件* @param toFile       裁剪后的文件* @param outputWidth  裁剪宽度* @param outputHeight 裁剪高度* @param proportion   是否是等比缩放*/public static void resizePng(File fromFile, File toFile, int outputWidth, int outputHeight, boolean proportion){try{BufferedImage bi2 = ImageIO.read(fromFile);int newWidth;int newHeight;// 判断是否是等比缩放if (proportion){// 为等比缩放计算输出的图片宽度及高度double rate1 = ((double) bi2.getWidth(null)) / (double) outputWidth + 0.1;double rate2 = ((double) bi2.getHeight(null)) / (double) outputHeight + 0.1;// 根据缩放比率大的进行缩放控制double rate = rate1 < rate2 ? rate1 : rate2;newWidth = (int) (((double) bi2.getWidth(null)) / rate);newHeight = (int) (((double) bi2.getHeight(null)) / rate);} else{newWidth = outputWidth; // 输出的图片宽度newHeight = outputHeight; // 输出的图片高度}BufferedImage to = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);Graphics2D g2d = to.createGraphics();to = g2d.getDeviceConfiguration().createCompatibleImage(newWidth, newHeight, Transparency.TRANSLUCENT);g2d.dispose();g2d = to.createGraphics();@SuppressWarnings("static-access")Image from = bi2.getScaledInstance(newWidth, newHeight, bi2.SCALE_AREA_AVERAGING);g2d.drawImage(from, 0, 0, null);g2d.dispose();ImageIO.write(to, "png", toFile);} catch (Exception e){e.printStackTrace();}}/*** 测试*/public static void main(String[] args) throws Exception{File fromFile = new File("c:/a.png");File toFile = new File("c:/b.png");resizePng(fromFile, toFile, 31, 32, false);}
}

转载:https://gitee.com/northstar888/codes/u638g2kszn147wvipdlhx76

Java之png图片工具类相关推荐

  1. java 生成水印图片工具类, MultipartFile接收上传的图片,处理成加水印之后的MultipartFile

    /*** Created by Administrator on 2018/4/26.* JAVA图片处理工具*/ public class ImageUtil {public enum positi ...

  2. Java 旋转、翻转图片工具类(附代码) | Java工具类

    目录 前言 Maven依赖 代码 总结 前言 本文提供java操作图片生成旋转.翻转后的图片工具类,拿来即用. Maven依赖 <dependency><groupId>com ...

  3. Java旋转图片工具类

    前言: 本文提供可以任意角度(最小精度1度),旋转图片的Java工具类,旋转后的图片不会失真或丢失边角,根据角度参数,重新绘制图片,达到无损旋转的目的. 一.图片工具类 import java.awt ...

  4. java图片缩放工具类,一个JAVA图形缩放处置工具类

    一个JAVA图形缩放处理工具类 调用的例子 import java.io.FileOutputStream; import java.io.IOException; import javax.imag ...

  5. java图形验证码生成工具类

    转载自   java图形验证码生成工具类 生成验证码效果       ValidateCode.java 验证码生成类 package cn.dsna.util.images; import java ...

  6. java项目常用的工具类

    前言 在开发过程中,我们会遇到很多繁琐或者棘手的问题,但是,这些问题往往会存在一些便捷的工具类,来简化我们的开发,下面是我工作中经常使用到的工具类 常用工具类 日期工具类 import java.te ...

  7. 【Java 代码实例 13】Java操作pdf的工具类itext

    目录 一.什么是iText? 二.引入jar 1.项目要使用iText,必须引入jar包 2.输出中文,还要引入下面```itext-asian.jar```包 3.设置pdf文件密码,还要引入下面` ...

  8. 「Java工具类」pdf导出工具类java导出pdf文件工具类

    介绍语 本号主要是Java常用关键技术点,通用工具类的分享:以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+d ...

  9. 常用工具类五 Excel转图片工具类

    市面上大多数excel转图片为收费工具,借鉴他人用awt的Graphics2D自己实现的工具类,只涉及poi依赖. /** * 版权: taylor * 描述: 将excel转为图片工具类 * 创建时 ...

最新文章

  1. 移动分发端 基础统计指标经典业务代码节选--留存用户统计
  2. [Tool] 使用CodeMaid自動程式排版 - 摘自网络
  3. 4G EPS 中建立 eNB 与 MME 之间的 S1 连接
  4. labelimg选中高亮
  5. Google的TensorFlow,微软CNTK, Amazon 的MxNet,Facebook 的Caffe2, PyTorch,国内百度的PaddlePaddle...
  6. 【Python】编程笔记7
  7. kubectl 创建pvc_动态挂载云盘(PVC)
  8. Cpp 对象模型探索 / 系列文章的索引
  9. 使用 outlet 在SAP Spartacus 的页面添加自定义 HTML 元素的一个例子
  10. [js] innerHTML与outerHTML有什么区别?
  11. 分类算法支持向量机(SVM) 简介与入门
  12. opencv画框返回坐标 python_20行Python代码实现视频字符化
  13. Linux实时/高性能任务独占CPU的操作
  14. java中的四个跳转语句_Java中的流程控制语句 (基础篇四)
  15. JUC与JVM并发编程学习笔记01
  16. 【Java】恶搞程序实现桌面无限弹窗
  17. 招聘笔试c语言题库,2014年腾讯校园招聘C语言笔试题含答案
  18. 路由器桥接(WIFI无线中继)设置及摆放位置图解
  19. 在函数前面加上WINAPI、CALLBACK
  20. easyUI设置行高

热门文章

  1. Vue中使用友盟CNZZ事件统计
  2. Idea使用Alibaba Cloud Toolkit实现一键部署项目到linux环境
  3. 微信小程序新闻列表详情页
  4. Epson针式打印机打印十六进制内容解决方案
  5. Zookeeper1:相关理论
  6. 爬虫基础知识记录の二
  7. Google Guava 的 5 个鲜为人知的特性
  8. 中文文本分类语料库-TanCorpV1.0
  9. CentOS如何拓展swap分区
  10. Polar SC的C语言实现之译码篇