Java裁剪压缩PNG图片,透明背景色变黑问题解决

package com.gblfy.test;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("D:\\22\\iconPath\\22.png");File toFile = new File("D:\\22\\iconPath\\2255555.png");resizePng(fromFile, toFile, 100, 100, false);//根据实际图片大小修改 水印图片的大小 动态适配// resizePng(fromFile, toFile, (int) (1244 * 0.71),  (int) (1684 * 0.18), false);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/519788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量子通信,到底是什么工作原理?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 小枣君责编 | 阿秃今天&#xff0c;小枣君要和大家聊的是“量子通信”。最开始计划写这个专题的时候&#xff0c;小枣君的内心是很纠结的。鲜枣课堂的目的&#xff0c;就是传递“普通人都能听懂”的知识。每一个知识点专题&a…

记录——oracle数据库备份

oracle数据库备份Oracle数据库的三种标准的备份方法&#xff1a; 1.导出&#xff0f;导入&#xff08;EXP/IMP&#xff09;。 2.热备份。 3.冷备份。 注释&#xff1a;导出备件是一种逻辑备份&#xff0c;冷备份和热备份是物理备份。 一、导出&#xff0f;导入&#xff08;Expo…

图(关系网络)数据分析及阿里应用

2019年1月18日&#xff0c;由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学&#xff0c;本次技术沙龙上&#xff0c;阿里巴巴资深技术专家钱正平为大家分享了大数据技术背景下图数据的应用前景&#xff0c;以及阿…

架构的“一小步”,业务的一大步

前言&#xff1a; 谈到“架构”这两个字&#xff0c;会有好多的名词闪现&#xff0c;比如:分层架构、事件驱动架构、DDD、CQRS等。亦或者一堆的软件设计原则&#xff0c;如&#xff1a;KISS原则&#xff08;Keep it Simple and Stupid&#xff09;、SOLID原则(单一责任原则、开…

项目管理过程组和知识领域

文章目录一、5大过程组 10个知识领域 49个过程二、10个知识领域 49个过程的输入、工具、输出一、5大过程组 10个知识领域 49个过程 知识领域启动过程组规划过程组执行过程组监控过程组收尾过程组4&#xff0e;项目整合管理4.1 制定项目章程4.2 制定项目管理计划4.3 指导与管理…

记录 kettle 表输出数组下标越界异常

1.报错是发送在每次写完10000条之后&#xff0c;再次写10000条数据时报错。 2.kettle 表输出组件设置的是每次提交10000 3.Caused by: org.pentaho.di.core.exception.KettleDatabaseException: 2021/05/10 16:37:54 - 表输出.4 - Unexpected error inserting row 2021/05/10 1…

牵手大企,关于图形计算、HPC与AI,NVIDIA言有尽而意无穷!

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 晶少出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;在黄仁勋看来&#xff0c;随着摩尔定律消亡&#xff0c;GPU加速才是撬动未来高性能计算发展的有力杠杆。有数据显示&#xff0c;目前NVIDIA已经销售了…

如何合理的规划jvm性能调优

JVM性能调优涉及到方方面面的取舍&#xff0c;往往是牵一发而动全身&#xff0c;需要全盘考虑各方面的影响。但也有一些基础的理论和原则&#xff0c;理解这些理论并遵循这些原则会让你的性能调优任务将会更加轻松。为了更好的理解本篇所介绍的内容。你需要已经了解和遵循以下内…

如何衡量研发效能?阿里资深技术专家提出了5组指标

阿里妹导读&#xff1a;新的一年&#xff0c;相信很多产品技术团队把研发效能提升列为重要的目标&#xff0c;甚至还有团队为此专门成立了项目组。然而&#xff0c;到底什么是好的研发效能&#xff0c;却很少有人能够表达清楚。标准不清晰&#xff0c;又何谈提升&#xff1f; …

官宣!2020年,这5类程序员要过苦日子!网友:明年咋活?!

2020年就要来了&#xff0c;有人说&#xff1a;经历了2019年的“市场变革”后&#xff0c;未来这一年将会至关重要&#xff0c;是决定各自命运的定型年。那么对于程序员来说&#xff0c;明年的风向标是如何&#xff1f;哪些编程语言会持续大热&#xff0c;哪些要做好被“淘汰”…

Sublime Text批量删除空白行

1)替换处理 CTRLH打开replace功能&#xff0c;勾选上左侧的regular expression&#xff0c;并填写 find what栏: \s$ &#xff08;正则表达式&#xff09; replace with栏: &#xff08;这行留空&#xff09; 接着点replace all即可

Perseus-BERT——业内性能极致优化的BERT训练方案【阿里云弹性人工智能】

一&#xff0c;背景——横空出世的BERT全面超越人类 2018年在自然语言处理&#xff08;NLP&#xff09;领域最具爆炸性的一朵“蘑菇云”莫过于Google Research提出的BERT&#xff08;Bidirectional Encoder Representations from Transformers&#xff09;模型。作为一种新型的…

Kubernetes的共享GPU集群调度

问题背景 全球主要的容器集群服务厂商的Kubernetes服务都提供了Nvidia GPU容器调度能力&#xff0c;但是通常都是将一个GPU卡分配给一个容器。这可以实现比较好的隔离性&#xff0c;确保使用GPU的应用不会被其他应用影响&#xff1b;对于深度学习模型训练的场景非常适合&#…

华为云WeLink正式发布,这是更懂企业的智能工作平台一枚!

今日&#xff0c;华为云在京发布智能工作平台WeLink。 对此&#xff0c;华为云副总裁、联接与协同业务总裁薛浩表示&#xff1a;“华为云WeLink源自华为数字化转型实践&#xff0c;是更懂企业的智能工作平台&#xff0c;具备智能高效、安全可靠、开放共赢三大核心优势&#xff…

项目管理过程组和知识领域 简介重点记忆

文章目录一、5大过程组 10个知识领域 49个过程二、10个知识领域 49个过程的输入、工具、输出一、5大过程组 10个知识领域 49个过程 知识领域启动过程组规划过程组执行过程组监控过程组收尾过程组4&#xff0e;项目整合管理4.1 制定项目章程4.2 制定项目管理计划4.3 指导与管理…

一致性协议浅析:从逻辑时钟到Raft

前言 春节在家闲着没事看了几篇论文&#xff0c;把一致性协议的几篇论文都过了一遍。在看这些论文之前&#xff0c;我一直有一些疑惑&#xff0c;比如同样是有Leader和两阶段提交&#xff0c;Zookeeper的ZAB协议和Raft有什么不同&#xff0c;Paxos协议到底要怎样才能用在实际工…

PMP 随堂笔记

CPi挣值管理 临界比值 不属于挣值管理 临界比值 1为分界点 党校与1时&#xff0c;差 大于1时为好 成本激励由有3种场景&#xff1a; 第一种场景&#xff1a;超出目标费用 目标10w 利润1w 分摊比例70/30 实际成本12w 也就是多花了(12w-10w(目标费用)2w 甲方罚乙方利润费用&…

Objective-C中的associated object释放时机问题

如果对象A持有对象B&#xff0c;B作为A的associated object&#xff0c;并且表面上B没有其他被强引用的地方&#xff0c;那么对象A被释放时&#xff0c;对象B一定会同时释放吗&#xff1f;大部分情况下是&#xff0c;但真有不是的时候。最近实现代码的时候不小心就碰到了这样的…

开放共赢,华为云WeLink生态联盟正式成立!

今日&#xff0c;华为在京发布了“更懂企业”的智能工作平台华为云WeLink&#xff0c;并携手合作伙伴成立华为云WeLink生态联盟。其中首批加入华为云WeLink生态联盟的伙伴主要包括&#xff08;排名不分先后&#xff09;&#xff1a;金山办公、中软国际、致远互联、罗技、华为商…

指明方向与趋势!2019开发者技能报告出炉!!!

近日国外开发者平台 HankerRank 发布了 2019 年开发者技能调查报告&#xff0c;该报告根据对71,281开发者的调查得出。 2018 年最受欢迎的开发语言 &#xfffc; 经过调查&#xff0c;2018年的所有开发语言中&#xff0c;JavaScript是最受欢迎的语言&#xff0c;2017年最受欢…