| | |
| | | package cc.mrbird.febs.mall.test; |
| | | |
| | | import javax.imageio.ImageIO; |
| | | import java.awt.*; |
| | | import java.awt.image.BufferedImage; |
| | | import java.awt.image.RenderedImage; |
| | | import java.io.File; |
| | | import java.io.IOException; |
| | | |
| | | public class getGray { |
| | | |
| | | /** |
| | | * 将输入的图片转换成灰度图片 |
| | | * @param bufferedImage_start |
| | | * @return |
| | | */ |
| | | public static BufferedImage gray(BufferedImage bufferedImage_start){ //定义灰度方法 返回值为BufferedImage对象 |
| | | int width = bufferedImage_start.getWidth(); |
| | | int height =bufferedImage_start.getHeight(); |
| | | BufferedImage bufferedImage_end = new BufferedImage(width,height, BufferedImage.TYPE_3BYTE_BGR ); //构建新的对象模型 |
| | | // 遍历图片的RGB值,把得到的灰度值存到bufferedImage_end中,然后返回bufferedImage_end |
| | | for (int y = 0; y < height; y++) { |
| | | for (int x = 0; x < width; x++) { |
| | | |
| | | int pixel = bufferedImage_start.getRGB(x, y); |
| | | int[] rgb = new int[3]; //分别表示红绿蓝RGB。 |
| | | rgb[0] = pixel >> 16 & 0xff; |
| | | rgb[1] = pixel >> 8 & 0xff; |
| | | rgb[2] = pixel & 0xff; |
| | | int gray = (rgb[0] * 28 + rgb[1] * 151 + rgb[2] * 77) >> 8; |
| | | |
| | | // Color color = new Color(bufferedImage_start.getRGB(x,y));//构建Color获取图片像素点 |
| | | // int gray = (int)(color.getRed() * 0.2126 + color.getGreen() * 0.7152 + color.getBlue() * 0.0722); |
| | | Color color_end = new Color(gray,gray,gray); //将设置的像素设置到bufferedImage_end |
| | | bufferedImage_end.setRGB(x,y,color_end.getRGB()); |
| | | } |
| | | } |
| | | return bufferedImage_end; |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | try{ |
| | | RenderedImage rendImage =gray(ImageIO.read(new File("D:\\image\\inputDpi.png"))); |
| | | File file = new File("D:\\image\\outDpi.png"); |
| | | ImageIO.write(rendImage, "png", file); |
| | | }catch(IOException e){ |
| | | System.out.println(e); |
| | | } |
| | | } |
| | | |
| | | } |
| | | //package cc.mrbird.febs.mall.test; |
| | | // |
| | | //import javax.imageio.ImageIO; |
| | | //import java.awt.*; |
| | | //import java.awt.image.BufferedImage; |
| | | //import java.awt.image.RenderedImage; |
| | | //import java.io.File; |
| | | //import java.io.IOException; |
| | | // |
| | | //public class getGray { |
| | | // |
| | | // /** |
| | | // * 将输入的图片转换成灰度图片 |
| | | // * @param bufferedImage_start |
| | | // * @return |
| | | // */ |
| | | // public static BufferedImage gray(BufferedImage bufferedImage_start){ //定义灰度方法 返回值为BufferedImage对象 |
| | | // int width = bufferedImage_start.getWidth(); |
| | | // int height =bufferedImage_start.getHeight(); |
| | | // BufferedImage bufferedImage_end = new BufferedImage(width,height, BufferedImage.TYPE_3BYTE_BGR ); //构建新的对象模型 |
| | | // // 遍历图片的RGB值,把得到的灰度值存到bufferedImage_end中,然后返回bufferedImage_end |
| | | // for (int y = 0; y < height; y++) { |
| | | // for (int x = 0; x < width; x++) { |
| | | // |
| | | // int pixel = bufferedImage_start.getRGB(x, y); |
| | | // int[] rgb = new int[3]; //分别表示红绿蓝RGB。 |
| | | // rgb[0] = pixel >> 16 & 0xff; |
| | | // rgb[1] = pixel >> 8 & 0xff; |
| | | // rgb[2] = pixel & 0xff; |
| | | // int gray = (rgb[0] * 28 + rgb[1] * 151 + rgb[2] * 77) >> 8; |
| | | // |
| | | //// Color color = new Color(bufferedImage_start.getRGB(x,y));//构建Color获取图片像素点 |
| | | //// int gray = (int)(color.getRed() * 0.2126 + color.getGreen() * 0.7152 + color.getBlue() * 0.0722); |
| | | // Color color_end = new Color(gray,gray,gray); //将设置的像素设置到bufferedImage_end |
| | | // bufferedImage_end.setRGB(x,y,color_end.getRGB()); |
| | | // } |
| | | // } |
| | | // return bufferedImage_end; |
| | | // } |
| | | // |
| | | // public static void main(String[] args) { |
| | | // try{ |
| | | // RenderedImage rendImage =gray(ImageIO.read(new File("D:\\image\\inputDpi.png"))); |
| | | // File file = new File("D:\\image\\outDpi.png"); |
| | | // ImageIO.write(rendImage, "png", file); |
| | | // }catch(IOException e){ |
| | | // System.out.println(e); |
| | | // } |
| | | // } |
| | | // |
| | | //} |