[Java] grayscale로 이미지 저장하기

by 스뎅(thDeng) on

RGB를 회색톤(grayscale)으로 변경해서 저장하기..

BufferedImage image = ImageIO.read(new File("input.png"));

for(int y = 0; y < image.getHeight(); y++) {
   for(int x = 0; x < image.getWidth(); x++) {
       Color colour = new Color(image.getRGB(x, y));
//       Choose one from below
//       int Y = (int) (0.299 * colour.getRed() + 0.587 * colour.getGreen() + 0.114 * colour.getBlue());
       int Y = (int) (0.2126 * colour.getRed() + 0.7152 * colour.getGreen() + 0.0722 * colour.getBlue());
       image.setRGB(x, y, new Color(Y, Y, Y).getRGB());
   }
}

ImageIO.write(image, "png", new File("output.png"));

참 쉽죠잉~ (근데 난 이미지 저장하는 방법 한참 찾았어 =_=;;) 까먹지 않으려고 기록.

RGB를 grayscale로 변경하는 공식은 요기

별도로 명시하지 않을 경우, 이 블로그의 포스트는 다음 라이선스에 따라 사용할 수 있습니다: Creative Commons License CC Attribution-NonCommercial-ShareAlike 4.0 International License