java技术研究
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2012年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
随笔分类
java架构(2)
(rss)
webwork(3)
(rss)
心情随笔(4)
(rss)
软件工程(1)
(rss)
随笔档案
2018年8月 (1)
2016年6月 (1)
2016年4月 (1)
2016年1月 (1)
2015年10月 (3)
2015年4月 (2)
2015年3月 (1)
2014年10月 (8)
2014年8月 (1)
2014年3月 (8)
2014年2月 (3)
2013年12月 (4)
2013年9月 (1)
2013年8月 (2)
2013年7月 (1)
2013年6月 (3)
2013年4月 (3)
2013年2月 (1)
2012年9月 (1)
2012年8月 (6)
2012年7月 (4)
2012年6月 (6)
2012年5月 (8)
2012年4月 (11)
2012年3月 (1)
2012年2月 (3)
2011年10月 (1)
2009年7月 (1)
2009年5月 (1)
2007年11月 (1)
2007年6月 (4)
2007年5月 (2)
2007年4月 (1)
2007年3月 (1)
2007年2月 (1)
2007年1月 (1)
2006年12月 (1)
2006年11月 (1)
2006年10月 (1)
2006年9月 (2)
2006年8月 (2)
2006年7月 (4)
统计
随笔 - 150
文章 - 1
评论 - 44
引用 - 0
留言簿
(3)
给我留言
查看公开留言
查看私人留言
阅读排行榜
1. 搭建Nginx+Java环境(转)(31731)
2. 安装VMware tools 时vmware-install.pl无法安装的问题解决办法(9129)
3. spring quartz使用多线程并发“陷阱”(转)(8114)
4. 什么是PV 什么是UV 什么是PR(7965)
5. oracle驱动错误引起违反协议,类型长度大于最大值(7089)
评论排行榜
1. 什么是PV 什么是UV 什么是PR(13)
2. 关于tomcat总是内存溢出(6)
3. webwork的ui标签(3)
4. fck上传中文名文件乱码问题(2)
5. 小心firefox的缓存(2)
将白色背景图片变透明(转自csdn)
[java:showcolumns]
view plain
copy
·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150
package
com.picture;
import
java.awt.Graphics2D;
import
java.awt.image.BufferedImage;
import
java.io.File;
import
java.io.IOException;
import
java.util.regex.Pattern;
import
javax.imageio.ImageIO;
import
javax.swing.ImageIcon;
import
javax.swing.JOptionPane;
public
class
Picture {
public
static
void
convert(String path) {
// TODO Auto-generated constructor stub
try
{
BufferedImage image = ImageIO.read(
new
File(path));
ImageIcon imageIcon =
new
ImageIcon(image);
BufferedImage bufferedImage =
new
BufferedImage(
imageIcon.getIconWidth(), imageIcon.getIconHeight(),
BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2D = (Graphics2D) bufferedImage.getGraphics();
g2D.drawImage(imageIcon.getImage(),
0
,
0
,
imageIcon.getImageObserver());
int
alpha =
0
;
for
(
int
j1 = bufferedImage.getMinY(); j1 < bufferedImage
.getHeight(); j1++) {
for
(
int
j2 = bufferedImage.getMinX(); j2 < bufferedImage
.getWidth(); j2++) {
int
rgb = bufferedImage.getRGB(j2, j1);
if
(colorInRange(rgb))
alpha =
0
;
else
alpha =
255
;
rgb = (alpha <<
24
) | (rgb &
0x00ffffff
);
bufferedImage.setRGB(j2, j1, rgb);
}
}
g2D.drawImage(bufferedImage,
0
,
0
, imageIcon.getImageObserver());
// 生成图片为PNG
String outFile = path.substring(
0
, path.lastIndexOf(
"."
));
ImageIO.write(bufferedImage,
"png"
,
new
File(outFile +
".png"
));
}
catch
(IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public
static
boolean
colorInRange(
int
color) {
int
red = (color &
0xff0000
) >>
16
;
int
green = (color &
0x00ff00
) >>
8
;
int
blue = (color &
0x0000ff
);
if
(red >= color_range && green >= color_range && blue >= color_range)
return
true
;
return
false
;
}
public
static
int
color_range =
210
;
public
static
Pattern pattern = Pattern.compile(
"[0-9]*"
);
public
static
boolean
isNo(String str) {
return
pattern.matcher(str).matches();
}
/**
* @param args
*/
public
static
void
main(String[] args) {
// TODO Auto-generated method stub
String path = JOptionPane.showInputDialog(
null
,
"请输入图片目录"
);
if
(path ==
null
|| !
new
File(path).isDirectory()) {
JOptionPane.showMessageDialog(
null
,
"输入目录有误!"
);
return
;
}
String color = JOptionPane.showInputDialog(
null
,
"请输入色差范围0~255(建议10~50)"
);
if
(isNo(color)) {
color_range =
255
- Integer.parseInt(color);
File file =
new
File(path);
String[] files = file.list();
for
(
int
i =
0
; i < files.length; i++) {
String ext = files[i].substring(files[i].lastIndexOf(
"."
) +
1
);
if
(ext.equals(
"jpg"
)) {
convert(path +
"//"
+ files[i]);
}
}
JOptionPane.showMessageDialog(
null
,
"转换完成!"
);
}
else
{
JOptionPane.showMessageDialog(
null
,
"输入的数字有误!"
);
}
}
}
posted on 2012-04-28 09:50
小秦
阅读(1391)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © 小秦