java抠图边框颜色处理_java 实现抠图(项目应用场景:抠图章)
1、直接看代码,如何抠得不是很完美,修改下色差范围值,直到将底色全部抠掉
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;
import java.io.*;
public class Test {
//色差范围0~255
public static int color_range = 75;
public static void main(String[] args) throws Exception{
BufferedImage image = ImageIO.read(new File("/Users/xiaomin/文档/图片/123.jpeg"));
// 高度和宽度
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的图片,使用了imageIcon.getImage(),目的就是得到image,直接使用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)){
// #AARRGGBB 最前两位为透明度
rgb = (alpha << 24) | (rgb & 0x00ffffff);
bufferedImage.setRGB(x, y, rgb);
alpha = 0;
}else{
// 设置为不透明
alpha = 255;
// #AARRGGBB 最前两位为透明度
rgb = (alpha << 24) | (0xff0000);
bufferedImage.setRGB(x, y, rgb);
}
}
}
// 绘制设置了RGB的新图片,这一步感觉不用也可以只是透明地方的深浅有变化而已,就像蒙了两层的感觉
g2D.drawImage(bufferedImage, 0, 0, null);
// 生成图片为PNG
ImageIO.write(bufferedImage, "png", new File("/Users/zhuxiao/construn/文档/图片/b.png"));
}
// 判断是背景还是内容
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;
}
}
java抠图边框颜色处理_java 实现抠图(项目应用场景:抠图章)相关推荐
- java抠图边框颜色处理_【图】绝密!抠图去黑边的方法 抠图去黑边框的处理技巧...
我们平常在处理照片之后,会发现有黑边,看着非常不自然.抠图去黑边框是如何操作的呢?一般像ps这款软件操作起来会有一点复杂,需要在菜单栏里选择收缩像素,再反选删除,后者反选羽化删除.对于一些新手来说,还 ...
- java jbutton边框颜色_在Java Swing中更改JButton的边框颜色,以保留插图
我想更改Java Swing中JButton组件的边框颜色. 我尝试了以下方法: package com.example.test; import java.awt.Color; import jav ...
- java抠图边框颜色处理_ps抠图边缘颜色怎么处理
展开全部 PS抠图后的图片处理62616964757a686964616fe58685e5aeb931333366303832边缘的具体方法: 1.先找到图片. 2.首先我们在ps中打开这张图片,然后 ...
- java设置边框颜色_java poi 设置边框
//获取工作簿 HSSFWorkbook hwb = new HSSFWorkbook(); //获取sheet HSSFSheet sheet = hwb.createSheet(); //获取样式 ...
- java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)[转]
HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFCellStyle setBorder = ...
- java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
转: 2016年12月02日 11:05:23 吃奶的牛 阅读数:34324 HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.cr ...
- Java窗体边框颜色_【转】窗口效果,带边框、不带边框、设定窗口边框颜色
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimensio ...
- java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总
Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...
- java实现记账本功能_java基础实战项目一:实现家庭记账本的简易记账功能
import java.util.ArrayList; import java.util.Scanner; /** * @Auther:sommer1111 * @date 2020/5/1 10:3 ...
最新文章
- 90sec mysql_dedecms被挂马 /plus/90sec.php解决方法
- 吴敏霞(为奥运冠军名字作诗)
- 使用jQuery.Ajax向ASP.NET MVC控制器Post数据
- 替换ExpandableListView右边箭头Group Indicator(小图标)
- c#读取Sybase中文乱码的解决办法
- 单片机C语言编程:.H文件与.C文件的关系!
- hive udaf_Hive UDAF 函数的编写
- java中static代码块_java中静态代码块详解
- mysql设置字符集gb2312_mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别...
- Vue+el-tree,元素拖拽时出现禁用图标, 请看解决办法
- 基于三维卷积网络的时空特征学习
- hdmi怎么支持2k分辨率_简单选择题!花3K买虚荣,还是2K买个踏实
- android zigbee环境监测,基于ZigBee技术的室内定位与环境监测系统
- Java 深入掌握JMS:JSM基础
- 开始使用MarkDown
- 电影赏析 001《全民目击》
- Ambari2.7.3自定义安装Ambari-Doris-Service
- Spark学习笔记(三):使用Java调用Spark集群
- java计算机毕业设计HTML5“忆红楼梦之味”网站设计与实现MyBatis+系统+LW文档+源码+调试部署(2)
- 基于java的中国象棋的设计与实现毕业设计
热门文章
- 时钟服务器地址_时钟同步 Chrony 教程
- signature=0880bf79d1c426abd0c8ca4bc897d06f,index.html
- 吴恩达《机器学习》第十一章:机器学习系统的设计
- 机器学习第二回——多变量线性回归
- VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition
- WPF在代码中创建DataTemplate时候的异常
- JavaScript 之 面向对象 [ 原型 ]
- LeetCode刷题(24)
- for in for of区别_这个句型中用介词for还是of?来看看解题技巧
- python datetime和字符串如何相互转化?