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 实现抠图(项目应用场景:抠图章)相关推荐

  1. java抠图边框颜色处理_【图】绝密!抠图去黑边的方法 抠图去黑边框的处理技巧...

    我们平常在处理照片之后,会发现有黑边,看着非常不自然.抠图去黑边框是如何操作的呢?一般像ps这款软件操作起来会有一点复杂,需要在菜单栏里选择收缩像素,再反选删除,后者反选羽化删除.对于一些新手来说,还 ...

  2. java jbutton边框颜色_在Java Swing中更改JButton的边框颜色,以保留插图

    我想更改Java Swing中JButton组件的边框颜色. 我尝试了以下方法: package com.example.test; import java.awt.Color; import jav ...

  3. java抠图边框颜色处理_ps抠图边缘颜色怎么处理

    展开全部 PS抠图后的图片处理62616964757a686964616fe58685e5aeb931333366303832边缘的具体方法: 1.先找到图片. 2.首先我们在ps中打开这张图片,然后 ...

  4. java设置边框颜色_java poi 设置边框

    //获取工作簿 HSSFWorkbook hwb = new HSSFWorkbook(); //获取sheet HSSFSheet sheet = hwb.createSheet(); //获取样式 ...

  5. java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)[转]

    HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(); HSSFCellStyle setBorder = ...

  6. java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)

    转: 2016年12月02日 11:05:23 吃奶的牛 阅读数:34324 HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.cr ...

  7. Java窗体边框颜色_【转】窗口效果,带边框、不带边框、设定窗口边框颜色

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimensio ...

  8. java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总

    Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...

  9. java实现记账本功能_java基础实战项目一:实现家庭记账本的简易记账功能

    import java.util.ArrayList; import java.util.Scanner; /** * @Auther:sommer1111 * @date 2020/5/1 10:3 ...

最新文章

  1. 90sec mysql_dedecms被挂马 /plus/90sec.php解决方法
  2. 吴敏霞(为奥运冠军名字作诗)
  3. 使用jQuery.Ajax向ASP.NET MVC控制器Post数据
  4. 替换ExpandableListView右边箭头Group Indicator(小图标)
  5. c#读取Sybase中文乱码的解决办法
  6. 单片机C语言编程:.H文件与.C文件的关系!
  7. hive udaf_Hive UDAF 函数的编写
  8. java中static代码块_java中静态代码块详解
  9. mysql设置字符集gb2312_mysq查询语句包含中文以及中文乱码,字符集 GBK、GB2312、UTF8的区别...
  10. Vue+el-tree,元素拖拽时出现禁用图标, 请看解决办法
  11. 基于三维卷积网络的时空特征学习
  12. hdmi怎么支持2k分辨率_简单选择题!花3K买虚荣,还是2K买个踏实
  13. android zigbee环境监测,基于ZigBee技术的室内定位与环境监测系统
  14. Java 深入掌握JMS:JSM基础
  15. 开始使用MarkDown
  16. 电影赏析 001《全民目击》
  17. Ambari2.7.3自定义安装Ambari-Doris-Service
  18. Spark学习笔记(三):使用Java调用Spark集群
  19. java计算机毕业设计HTML5“忆红楼梦之味”网站设计与实现MyBatis+系统+LW文档+源码+调试部署(2)
  20. 基于java的中国象棋的设计与实现毕业设计

热门文章

  1. 时钟服务器地址_时钟同步 Chrony 教程
  2. signature=0880bf79d1c426abd0c8ca4bc897d06f,index.html
  3. 吴恩达《机器学习》第十一章:机器学习系统的设计
  4. 机器学习第二回——多变量线性回归
  5. VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition
  6. WPF在代码中创建DataTemplate时候的异常
  7. JavaScript 之 面向对象 [ 原型 ]
  8. LeetCode刷题(24)
  9. for in for of区别_这个句型中用介词for还是of?来看看解题技巧
  10. python datetime和字符串如何相互转化?