Java随机更换背景图片_利用Java处理图片,更换背景
这个是网上一个大牛想到的方法,独特的见解,适用于给证件照换背景,即颜色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 block
e.printStackTrace();
}
}
}
}
摘自:http://zjfhw.iteye.com/blog/1497288
Java随机更换背景图片_利用Java处理图片,更换背景相关推荐
- java 读取excel 图片_利用Java+POI 读写Excel文档向Excel中插入图片
一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97- ...
- java 对象复制 反射_利用Java反射机制实现对象相同字段的复制操作
一.如何实现不同类型对象之间的复制问题? 1.为什么会有这个问题? 近来在进行一个项目开发的时候,为了隐藏后端数据库表结构.同时也为了配合给前端一个更友好的API接口文档(swagger API文档) ...
- java 随机手机验证码_基于Java随机生成手机短信验证码的实例代码|chu
简单版 /** * 产生4位随机数(0000-9999) * * @return 4位随机数 */ public static String getFourRandom() { return Stri ...
- java mysql jdbc 封装_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)...
近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...
- java界面设计股票_利用JAVA实现股票交易系统设计参考.doc
利用JAVA实现股票交易系统设计参考 目 录 摘要1 关键词1 Abstract2 Key words2 1 概述3 1.1 Java体系结构3 1.2 Java的优点3 1.3 Java的应用3 2 ...
- java calendar日期计算_利用Java中Calendar计算两个日期之间的天数和周数
前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每 ...
- java 方法数统计_利用Java简单实现一个代码行数统计器方法实例
前言 哈喽,我是小黑, 最近学了java的输入输出流后一直心痒痒,总想找一点事情来做,所以用java代码来实现了一下统计代码的所有行数,看一下我上大学以来到底打了多少行. 先附上实现代码吧! pack ...
- java 获取文件名长度_利用Java文件类File的方法,获取磁盘文件的文件名、长度、大小等特性...
利用Java文件类File的方法,获取磁盘文件的文件名.长度.大小等特性. 如题,大神们谁可以编写一个这样的java程序? happy530755 | 浏览 1482 次 |举报 我 ...
- java日期相差周_利用Java中Calendar计算两个日期之间的天数和周数
前言 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历.阴(农)历之分.它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每 ...
最新文章
- 根据开源数据库选择合适的工具
- NBT:主流高通量测序仪在人/细菌/宏基因组测序评测结果发布,华大智造表现优异...
- 2020年美妆行业内容营销报告
- 西华大学计算机专业怎么样呢,西华大学(专业学位)计算机技术考研难吗
- 中兴通讯午后复牌:A股涨停 港股盘中涨逾53%
- git : 上传大文件或者PDF或者二进制文件导致无法上传
- JDK 14 调试神器了解一下?| 原力计划
- easyui datagrid的getSelections只获取一行问题
- EOS在ubuntu16.04搭建私有链(二)
- 并行处理与体系结构_理论背景_01
- 阿里云 ECS迁移数据至腾讯云云服务器
- 一个独到程序员的深刻见解(转)
- 极光一键登录集成手册 | Android
- android控件覆盖方法
- Codeforces 1153C
- 银行业务系统(c/s架构、socket网络编程、多线程)
- 自然语言处理简介及研究方向
- 多因素分析显示脂肪沉积比炎症损害更能预测强直性脊柱炎患者的脊柱新骨形成...
- 中粮集团进军互联网:先试B2B再试B2C
- codefroces13A