Это может пригодиться для создания ретростиля или для экономии памяти.
Загружаем картинку и проходим по всем пикселям:
BufferedImage img = ImageIO.read(new File("input.jpg"))
for (x, y in pixels) {
int rgb = img.getRGB(x, y)
int r = (rgb >> 16) & 0xFF
int g = (rgb >> 8) & 0xFF
int b = rgb & 0xFFВысчитываем среднее значение и ставим его вместо цвета:
int gray = (r + g + b) / 3
img.setRGB(x, y, (gray << 16) | (gray << 8) | gray)
}
Сохраняем результат:
ImageIO.write(img, "jpg", new File("output.jpg"))🔥 Итого, мы сделали простую формулу для перевода фото в серое изображение
👉 Java Ready | #практика