packagecom.cxf.dao;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.ByteArrayOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.InputStream;importjavax.imageio.ImageIO;importjavax.swing.ImageIcon;public classAlpha {public static voidmain(String[] args) {
transferAlpha();
}public static byte[] transferAlpha() {
ByteArrayOutputStream byteArrayOutputStream= newByteArrayOutputStream();
File file= new File("E:/07.png");
InputStream is;try{
is= newFileInputStream(file);
BufferedImage bi=ImageIO.read(is);
Image image=(Image)bi;
ImageIcon imageIcon= newImageIcon(image);
BufferedImage bufferedImage= newBufferedImage(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
.getHeight(); j1++) {for (int j2 = bufferedImage.getMinX(); j2
.getWidth(); j2++) {int rgb =bufferedImage.getRGB(j2, j1);int R =(rgb & 0xff0000 ) >> 16;int G= (rgb & 0xff00 ) >> 8;int B= (rgb & 0xff);if(((255-R)<30) && ((255-G)<30) && ((255-B)<30)){
rgb= ((alpha + 1) << 24) | (rgb & 0x00ffffff);
}
bufferedImage.setRGB(j2, j1, rgb);
}
}
g2D.drawImage(bufferedImage,0, 0, imageIcon.getImageObserver());
ImageIO.write(bufferedImage,"png", new File("e:/67.png"));//直接输出文件//ImageIO.write(bufferedImage, "png", byteArrayOutputStream);//转换成byte数组
} catch(Exception e) {
e.printStackTrace();
}finally{
}returnbyteArrayOutputStream.toByteArray();
}
}