java图片透明_Java实现对图片透明化处理
因需要将一张白色背景图片处理为透明色,因此上网上搜了搜处理方案,可以通过ps和其他图片软件,但是我电脑上并没有这两个软件,下载安装太耗时。从网上搜了搜发现原来可以使用 Java 代码进行处理,代码如下:
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
public class linuxidc {
public static void main(String[] args) throws IOException {
BufferedImage image = ImageIO.read(new File("/home/linuxidc/linuxidc.com/linuxidc.com.jpg"));
// 高度和宽度
int height = image.getHeight();
int width = image.getWidth();
// 生产背景透明和内容透明的图片
ImageIcon imageIcon = new ImageIcon(image);
BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2D = (Graphics2D) bufferedImage.getGraphics(); // 获取画笔
g2D.drawImage(imageIcon.getImage(), 0, 0, null); // 绘制Image的图片
int alpha = 0; // 图片透明度
// 外层遍历是Y轴的像素
for (int y = bufferedImage.getMinY(); y < bufferedImage.getHeight(); y++) {
// 内层遍历是X轴的像素
for (int x = bufferedImage.getMinX(); x < bufferedImage.getWidth(); x++) {
int rgb = bufferedImage.getRGB(x, y);
// 对当前颜色判断是否在指定区间内
if (colorInRange(rgb)) {
alpha = 0;
} else {
// 设置为不透明
alpha = 255;
}
// #AARRGGBB 最前两位为透明度
rgb = (alpha << 24) | (rgb & 0x00ffffff);
bufferedImage.setRGB(x, y, rgb);
}
}
// 绘制设置了RGB的新图片
g2D.drawImage(bufferedImage, 0, 0, null);
// 生成图片为PNG
ImageIO.write(bufferedImage, "png", new File("/home/linuxidc/linuxidc.com/linuxidc.com.png"));
System.out.println("完成画图");
}
// 判断是背景还是内容
public static boolean colorInRange(int color) {
int red = (color & 0xff0000) >> 16;// 获取color(RGB)中R位
int green = (color & 0x00ff00) >> 8;// 获取color(RGB)中G位
int blue = (color & 0x0000ff);// 获取color(RGB)中B位
// 通过RGB三分量来判断当前颜色是否在指定的颜色区间内
if (red >= color_range && green >= color_range && blue >= color_range) {
return true;
}
;
return false;
}
// 色差范围0~255
public static int color_range = 210;
}
处理前后效果对比:
java图片透明_Java实现对图片透明化处理相关推荐
- java image 透明_Java实现图片透明效果
Java实现图片透明效果,从演示截图可看到,上层图片与下层图片互相重叠,也就是上层图片透明了,看到了下层以的图片,具体的代码实现: public class HalfTransparentImageD ...
- java 图片合并_Java如何实现图片的叠加与拼接操作
关于Java实现图片的叠加与拼接的文章网络上确实很多,碰巧小编开发工作中也遇到这些问题,就做了简要的梳理,作为笔记以备不时之需. Java对图片的处理主要使用的是BufferedImage类. Buf ...
- java课程设计图片浏览器_java课程设计图片浏览器
[实例简介] 图片浏览器最基本的功能是能浏览一个目录中的所有图片,并可以点击浏览上一张图片或者下一张图片,还有对图片放大与缩小,或者翻转图片等操作,在这里,实现了图片的浏览功能,导航功能(下一张.上一 ...
- JAVA绘制图片原理_java开发_图片截取工具实现原理
先来看看效果: 测试一: 原图: 效果图: 测试二: 原图: 效果图: 代码部分: /** * */ package com.b510; import java.awt.rectangle; impo ...
- java 图片生成器_Java实现的图片生成器
一.本图片生成器具有以下功能特性: 1.可以设置图片的宽度.高度.外框颜色.背景色: 2.可以设置图片字体的大小.名称.颜色: 3.可以设置输出图片的格式,如JPEG.GIF等: 4.可以将图片存储到 ...
- java怎么让图片自适应_Java使背景图片自适应窗体的办法
添加一个面板,窗体布局设置为BorderLayout.center或者null都可以.在面板上进行重绘的时候,调用用 面板.getsize().getHeight和getWidth方法来设置背景图片大 ...
- wps怎么图片透明_Tips:设置图片透明背景
点击"一只七秒记忆的鱼"关注我 TIPS: 平时在做PPT.H5.长图等等 都会用到"插入图片"功能 一般找到的图片都不是透明背景 那么会产生以下效果,非常影响 ...
- java水印透明_java给透明图片加水印
java实现一张透明背景的图片,添加图片水印 public static void createWaterMarkByIcon(File srcImageFile, File logoImageFil ...
- java 盖章透明_java实现图片上传后裁剪,把白色背景变成透明图(电子印章)
应用场景:企业在白纸上盖上印章,然后软件实现透明的电子印章,在后续业务流程中使用! A4纸-----------------------------------------处理后----------- ...
- java 添加图片背景_java添加背景图片
总结:我们通常实现添加背景图片很容易,但是再添加按钮组件就会覆盖图片.原因是: 有先后啊.setlayout();与布局有很大关系 请调试代码的时候,仔细揣摩.我晕了 还可以添加文本框,密码框 fra ...
最新文章
- 力扣(LeetCode)刷题,简单+中等题(第34期)
- Flask实战2问答平台-登录限制(装饰器)
- javafx 调用java_Java,JavaFX的流畅设计风格滑块
- python中request方法_如何使用python语言中的request模块获取代码
- 钉钉作弊,被判5年!
- 【报告分享】2020年数字政府新基建发展白皮书.pdf(附下载链接)
- linux端口连通性测试telnet、wget、ssh、curl
- 鞍山楷邦计算机学院,计算机专业和平面设计专业是一个专业不?
- Android 详解自定义View抽奖转盘
- Android内核剖析pdf
- Java实战之管家婆记账系统(3)——数据库表
- GMM估计分析步骤及结果解读
- Mathtype(2),用于创建此对象的程序是 Equation。您的计算机尚未安装此程序或此程序无响应。
- 制造业如何做好数字化转型
- 让Oracle高效并行执行的13个必备知识点
- DOS命令行 定时关机取消定时关机
- px、em、rem单位间的区别
- 关于CCS中配置DSP时用到的.gel文件
- Java基础 Stream流方法引用异常文件
- python学习第二天