KKSU
2024-05-30 84599f1fdac0d9723c7f02a2e66b0e909ad911d7
src/main/java/cc/mrbird/febs/mall/test/getGray.java
@@ -1,51 +1,51 @@
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);
//        }
//    }
//
//}