这个是网上一个大牛想到的方法,独特的见解,适用于给证件照换背景,即颜色RGB值在一个范围内的图像处理,稍加修改,可以适用于一切需要更换背景的情况,可以利用NetBeans设计一个UI,然后写成一个小程序,将PS里的抠图取代。

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import javax.imageio.ImageIO;public class ImageDemoBackGround {public static void main(String[] args) throws Exception{// TODO Auto-generated method stub/** 待处理的图片* */File dir = new File("/Volumes/Function/G/test3/");/** 列出目录中的图片,得到数组* */File[] files = dir.listFiles();/** 遍历数组* */for (int x = 0; x < files.length; x++) {/** 定义一个数组,存放RGB值* */int[] rgb = new int[3];/** byte转换BuffereImage* */BufferedImage bImage = null;bImage = ImageIO.read(files[x]);int width = bImage.getWidth();int height = bImage.getHeight();int minx = bImage.getMinTileX();int miny = bImage.getMinTileY();System.out.println("正在处理..."+files[x].getName());/** 遍历像素点,判断是否更换颜色* */for (int i = minx; i < width; i++) {for (int j = miny; j < height; j++) {/** 换色* */int pixel = bImage.getRGB(i, j);rgb[0] = (pixel & 0xff0000) >>16;rgb[1] = (pixel & 0xff00) >>8;rgb[2] = (pixel & 0xff) ;if (rgb[0]<230&&rgb[0]>100&& rgb[1]<230&&rgb[1]>100 && rgb[2]<230&&rgb[2]>100) {bImage.setRGB(i, j, 0xffffff);}}}System.out.println("\t处理完毕:"+files[x].getName());System.out.println();/** 输出* */FileOutputStream ops;try {ops = new FileOutputStream(new File("/Volumes/Function/G/test4/"+x+".jpg"));ImageIO.write(bImage, "jpg", ops);ops.flush();ops.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} }}
}
摘自:http://zjfhw.iteye.com/blog/1497288

利用Java处理图片,更换背景相关推荐

  1. Java随机更换背景图片_利用Java处理图片,更换背景

    这个是网上一个大牛想到的方法,独特的见解,适用于给证件照换背景,即颜色RGB值在一个范围内的图像处理,稍加修改,可以适用于一切需要更换背景的情况,可以利用NetBeans设计一个UI,然后写成一个小程 ...

  2. java 根据ip获取mac地址_利用java如何根据IP获取mac地址

    利用java如何根据IP获取mac地址 发布时间:2020-11-25 15:49:42 来源:亿速云 阅读:74 作者:Leah 利用java如何根据IP获取mac地址?针对这个问题,这篇文章详细介 ...

  3. Oracle字符串转BooIean,利用Java的多线程技术实现数据库的访问.pdf

    利用Java的多线程技术实现数据库的访问.pdf 第 卷第 期 计算机应用 22 12 Voi .22 , No . 12 年 月 2002 12 Computer Appiications Dec ...

  4. 利用java反射机制 读取配置文件 实现动态类载入以及动态类型转换

    作者:54dabang 在spring的学习过程之中,我们能够看出通过配置文件来动态管理bean对象的优点(松耦合 能够让零散部分组成一个总体,而这些总体并不在意之间彼此的细节,从而达到了真正的物理上 ...

  5. 利用Java反射机制和poi插件操作excel

    最近在公司写一个利用poi插件读取excel的东西,,不想每一个都写一遍解析代码.就想利用Java的反射机制,写对应的实体类,获取对应excel中的值,下面是解析的代码,仅供参考.不足之处,望指出/* ...

  6. 孪生素数 java代码_科学网—孪生素数猜想——利用 Java + 正则表达式 输出孪生素数对 - 马廷灿的博文...

    查了一下资料,发现正则表达式竟然可以用来检查素数(http://coolshell.cn/articles/2704.html)!(由于工作需要,几年前开始接触.利用正则表达式,给工作带了很大方便,也 ...

  7. java编写字符串连接程序注释_一种利用JAVA注释支持多行字符串的方法

    从BeetlSql项目将SQL全放在Beetl模板里得到启发,又想到一个比较偏门的用法.以下代码实测通过,详见jSqlBox项目的test\examples\multipleLineSQL\SqlTe ...

  8. 利用Java存储过程简化数据库操作

       利用Java存储过程沟通SQL.XML.Java.J2EE和Web服务. 存储过程(stored procedure)允许将运行于数据库层中的持久性逻辑与运行于中间层中的商务逻辑有效地分离开来. ...

  9. 利用java反射机制进行对象操作

    我们经常使用COMMONS-BEANUTILS包来进行bean的操作,例如从map到bean获从bean到map的映射,那么实现的原理是什么呢,下面举个简单的操作的例子:首先,我建立一个bean pu ...

最新文章

  1. 100连接蓝牙_车机蓝牙连接常见问题说明
  2. 《编程匠艺》读书笔记之十四
  3. 一个简单的jQuery例子,动态添加表格和删除
  4. 2019DTCC大会分享:分布式数据库全局读一致性
  5. 13款WordPress使用必装插件
  6. python的匿名函数返回值_Python匿名函数返回值输出问题望指点
  7. 2022年计算机专业程序员笔记本电脑推荐
  8. 解决Spark集群无法停止
  9. python fsolve说明_python fsolve说明_Python fsolve()抱怨形状.为什么?
  10. 淘宝爬登录、取个人资料、微博绑定、收货地址、支付宝绑定设置、安全设置等信息、购物车、收藏宝贝和店铺、个人积分、退款维权、我的足迹...
  11. 使用java实现软件结构体系中的管道-过滤器模式
  12. java 笔画排序_Java汉字排序(3)按笔划排序
  13. 怎么克隆计算机的mac,选中克隆为当前电脑MAC地址
  14. 移动端的兼容问题(ios和安卓)
  15. 数据类型的基本功能(一)
  16. day56 JavaScript
  17. 分部积分法解决二重积分问题
  18. 赛意SMOM和金蝶云星空单据接口对接
  19. JavaScript:利用JavaScript实现的功能、算法和奇淫技巧(持续更新)
  20. 网易云易盾CTO朱浩齐:我们是如何用AI赋能内容安全?

热门文章

  1. 第4关—input()函数
  2. There is no getter for property named xxx in xxx
  3. 【附源码】计算机毕业设计SSM实验室预约管理系统
  4. ERROR Error loading vue.config.js ERROR Error Command failed git describe --always报错可能的原因
  5. 五、交换机 与 发布/订阅模式、路由模式、主题模式
  6. 访问者模式(JAVA)
  7. 析测结Trimble TILOS v9.0 1CD
  8. 鸿蒙之至始于衣冠,学坊之声/Class Story | 孝老爱亲,我们这样做——双语303班蚂蚁学坊亲子活动...
  9. 电脑主要硬件解读与选购建议
  10. PKCS#11标准解读-Cryptoki库如何工作