/** * 转为单色图片 */ private static void convertSingleColorBMPFile()throws Exception{ BufferedImage sourceImg = ImageIO.read(new File("D:/Temp/test.bmp")); int h = sourceImg.getHeight(); int w = sourceImg.getWidth(); int[] pixels = new int[w * h]; PixelGrabber pixelGrabber = new PixelGrabber(sourceImg, 0, 0, w, h, pixels, 0, w); pixelGrabber.grabPixels(); int gray; for (int j=0; j<h; j++) { for (int i=0; i<w; i++) { // 由红,绿,蓝值得到灰度值 gray = (int) (((pixels[w * j + i] >> 16) & 0xff) * 0.8); gray += (int) (((pixels[w * j + i] >> 8) & 0xff) * 0.1); gray += (int) (((pixels[w * j + i]) & 0xff) * 0.1); pixels[w * j + i] = (255 << 24) | (gray << 16) | (gray << 8) | gray; } } MemoryImageSource imageSource = new MemoryImageSource(w, h, pixels, 0, w); Image image = Toolkit.getDefaultToolkit().createImage(imageSource); BufferedImage bufImage = new BufferedImage(w, h, BufferedImage.TYPE_BYTE_BINARY); bufImage.createGraphics().drawImage(image, 0, 0, null); ImageIO.write(bufImage, "BMP", new File("D:/Temp/test3.bmp")); }
图片转换为单色
猜你喜欢
转载自chenjumin.iteye.com/blog/2366947
今日推荐
周排行