Нужно сделать градацию серого. - Java
Формулировка задачи:
Помогите пожайлуста!
Есть програма нужно сделать градацию серого.
Листинг программы
- package rastr;
- import javax.imageio.ImageIO;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import java.io.IOException;
- public class rastr {
- public static void main(String[] args) throws IOException {
- BufferedImage img = ImageIO.read(new File("in.png"));
- int height = img.getHeight();
- int width = img.getWidth();
- byte[][] alpha = new byte[width][height];
- byte[][] red = new byte[width][height];
- byte[][] green = new byte[width][height];
- byte[][] blue = new byte[width][height];
- for (int x = 0; x < width;x++) {
- for (int y = 0; y < height;y++) {
- int color = img.getRGB(x, y);
- alpha[x][y] = (byte) (color >> 24);
- red[x][y] = (byte) (color >> 16);
- green[x][y] = (byte) (color >> 8);
- blue[x][y] = (byte) (color);
- }
- }
- // --------------------------------------------
- // --------------------------------------------
- BufferedImage outImg = new BufferedImage(width, height, BufferedImage.TYPE_4BYTE_ABGR);
- for (int x = 0; x < width; x++) {
- for (int y = 0; y < height; y++) {
- int color = blue[x][y];
- color += (green[x][y] << 8);
- color += (red[x][y] << 16);
- color += (alpha[x][y] << 24);
- outImg.setRGB(x, y, color);
- }
- }
- ImageIO.write(outImg, "png", new File("out img1.png"));
- }
- }
Решение задачи: «Нужно сделать градацию серого.»
textual
Листинг программы
- final class gray {
- public static void run(java.awt.image.BufferedImage img){
- int rgb, r, g, b;
- for(int i = 0; i < img.getWidth(); ++i){
- for(int j = 0; j < img.getHeight(); ++j){
- rgb = img.getRGB(i, j);
- r = (rgb >> 16) & 0xFF;
- g = (rgb >> 8) & 0xFF;
- b = rgb & 0xFF;
- r = (r * 77 + g * 150 + b * 29 + 128) / 256;
- g = b = r;
- img.setRGB(i, j, (r << 16) | (g << 8) | b);
- }
- }
- }
- }
- //...
- BufferedImage img = ImageIO.read(new File("in.png"));
- gray.run(img);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д