Java程序Png图片保持透明度处理

2023-11-02

核心代码

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class A {
    public static BufferedImage resize(int faceWidth, BufferedImage srcImg) throws IOException {
        int imgWidth = 0;
        if (faceWidth > 70 && faceWidth < 120) {
            imgWidth = faceWidth * 7 / 8;
        } else if (faceWidth > 60 && faceWidth < 70) {
            imgWidth = faceWidth * 11 / 10;
        } else if (faceWidth < 60) {
            imgWidth = faceWidth * 6 / 5;
        } else {
            imgWidth = faceWidth * 4 / 5;
        }
        int imgHeight = imgWidth * srcImg.getHeight() / srcImg.getWidth();
        BufferedImage resizedImg = new BufferedImage(imgWidth, imgHeight, BufferedImage.TYPE_INT_RGB);
        Graphics2D resizedG = resizedImg.createGraphics();
        resizedImg = resizedG.getDeviceConfiguration().createCompatibleImage(imgWidth, imgHeight, Transparency.TRANSLUCENT);
        resizedG.dispose();
        resizedG = resizedImg.createGraphics();
        Image from = srcImg.getScaledInstance(imgWidth, imgHeight, srcImg.SCALE_AREA_AVERAGING);
        resizedG.drawImage(from, 0, 0, null);
        resizedG.dispose();
        return resizedImg;
    }

    public static void main(String[] args) {
        try {
            //读入图片
            BufferedImage image = (BufferedImage) ImageIO.read(new File("C:\\Users\\Administrator\\Desktop\\zjb.png"));
            //处理图片
            BufferedImage resize = resize(1769, image);
            //输出图片
            File outputfile = new File("C:\\Users\\Administrator\\Desktop\\zjb_deal.png");
            ImageIO.write(resize, "png", outputfile);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java程序Png图片保持透明度处理 的相关文章

随机推荐

  • 【Java基础】Scanner中next与nextLine区别

    Scanner概念 scanner可以用来获取用户的输入 八个基本数据类型除字符外都可以输入 另外输入字符串有两种方式next与nextLine 接下来介绍他们的区别 1 next与nextLine的区别 1 1 区别一 String st
  • 上传AppStore 报错 ERRPR ITMS-90700

    小萌在解决乱七八糟的警告的时候 加入了Background Modes 然后就报了上述错误 把这个去掉之后重新打包 然后就顺利上线了
  • win10上python3密码库pycryptodome使用

    环境安装 python 在 Windows下使用密码库时要安装的是pycryptodome模块 pip install pycryptodome python 在 Linux下使用密码库时要安装的是pycrypto模块 pip instal
  • C/C++中字符串数组及strlen()和sizeof()区别

    1 字符串数组 标准C语言中没有字符串 string 类型 而只是在C 后添加了字符串string类 但是并不属于基础数据类型 只是类功能很强大 得到广泛应用 所以一般我们平时处理字符串 即字符序列 使用的都是字符串数组 1 1 字符串数组
  • 提升企业网络安全的重要性:EventLog Analyzer的角色

    在今天的数字时代 企业对网络安全的需求愈发迫切 随着互联网的不断发展和企业信息的数字化 网络攻击的威胁也不断增加 为了保护企业数据和系统的完整性 网络安全已经成为每个企业都必须认真对待的重要问题 在这个背景下 我们不得不提到一种强大的工具
  • SSM+mysql课程题库管理系统-计算机毕业设计源码18655

    摘 要 随着科学技术的飞速发展 各行各业都在努力与现代先进技术接轨 通过科技手段提高自身的优势 对于课程题库管理系统当然也不能排除在外 随着网络技术的不断成熟 带动了课程题库管理系统 它彻底改变了过去传统的管理方式 不仅使服务管理难度变低了
  • ENVI_IDL: 基础语法详解

    01 题目 02 代码说明 题目本身很简单 但是我自己加了一些东西进去增加难度 主要包括print函数的封装 格式化字符串 但是不影响代码的阅读 注 对于没有语言基础的人而言相对阅读困难 但是由于IDL是解释型语言 类似于Python 所以
  • 【PyTorch】如何取得预训练模型的标签label列表(以 Alexnet 在 ImageNet 上的预训练模型为例)

    PyTorch 预训练模型 PyTorch 提供过了大量的预训练模型可以直接拿来使用 或者进行增量训练和微调 拿 Alexnet 的预训练模型为例 import torch import torchvision model torchvis
  • Ubuntu系统下 .7z 文件压缩解压命令

    安装软件 sudo apt install p7zip full 解压文件 解压命令 7z x filename 7z r o test 参数说明 7z 解压缩文件命令 x 表示解压缩 r 表示递归解压缩所有的子文件夹 o 指定解压到的那个
  • JProfile 分析OOM hprof文件

    JProfile 分析OOM OutOfMemoryError 1 JVM组成 首先要明白JVM组成 方法区 非堆 Method Area No Heap Java栈 虚拟机栈 VM Stack Java Stack 本地方法栈 Nativ
  • 解决浏览器”您的连接不是私密链接“的问题!最详细!!!

    Google的Chorom浏览器打开baidu主页 显示 您的连接不是私密连接 攻击者可能会试图从 x x x x 窃取您的信息 例如 密码 通讯内容或信用卡信息 了解详情 NET ERR CERT INVALID 网上找了很多人的解决办法
  • LeetCode 465. Optimal Account Balancing

    原题网址 https leetcode com problems optimal account balancing A group of friends went on holiday and sometimes lent each ot
  • linux ftp查看用户目录权限,linux 指定ftp用户 特定目录及权限

    Linux添加FTP用户并设置权限 在linux中添加ftp用户 并设置相应的权限 操作步骤如下 1 环境 ftp为vsftp 被限制用户名为test 被限制路径为 home test 2 建用户 在root用户下 useradd d ho
  • MyBatis-Plus——代码自动生成器

    哈喽 大家好 我是 一位上进心十足的 Java领域博主 的写作风格 喜欢用 通俗易懂 的文笔去讲解每一个知识点 而不喜欢用 高大上 的官方陈述 博客的领域是 面向后端技术 的学习 未来会持续更新更多的 后端技术 以及 学习心得 如果有对 后
  • Cesium中文教程-Cesium Workshop(一)

    欢迎来到Cesium社区 非常高兴能加入我们 为了帮助您开发自己的web地图应用程序 本教程将从头到尾介绍如何开发一款简单但有广泛影响的Cesium应用程序 本教程将接触到许多CesiumJS API重要的方面 但这并不意味着包括所有 Ce
  • openLDAP安装卸载与重装

    安装卸载 安装与卸载点击跳转 openLDAP与phpldapadmin安装点击跳转 重装问题 点击跳转
  • 基于SpringBoot工程开发Docker化微服务

    目录 1 微服务容器化治理的优缺点 1 1 微服务容器化的优点 1 2 微服务容器化的缺点 2 微服务的两种模式 2 1 Microservice SDK 2 2 ServiceMesh 3 微服务容器化治理的推荐模式 4 Windows下
  • 湖南省副省长秦国文一行调研考察亚信科技

    9月5日 湖南省人民政府党组成员 副省长秦国文一行到亚信科技调研考察 亚信科技高级副总裁陈武主持接待 图 双方合影 在亚信科技创新展示中心 秦国文了解了亚信科技在5G 算力网络 人工智能 大数据等前沿领域的创新探索 在数字化运营 智慧城市
  • 使用java API操作hdfs--读取hdfs文件并打印

    在myclass之中创建类文件 这个myclass目录是自己创建的 编译的时候会报如下的错误 很明显就是没有导入包的结果 见这个API网站 则可以找到响应的包 当然还有java的api文档 http hadoop apache org do
  • Java程序Png图片保持透明度处理

    核心代码 import javax imageio ImageIO import java awt import java awt image BufferedImage import java io File import java io