无法获得Java中图像的灰度级

问题描述 投票:0回答:1

我在获取.jpg文件的灰度时遇到问题。我正在尝试创建一个新的.jpg文件,以灰度显示,但我只是复制了图像而已。这是我的代码:

package training01;

import java.awt.*;
import java.awt.image.BufferedImage;

import java.io.*;

import javax.imageio.ImageIO;
import javax.swing.JFrame;

public class GrayScale {
    BufferedImage image;
    int width;
    int height;
    public GrayScale() {
        try {
            File input = new File("digital_image_processing.jpg");
            image = ImageIO.read(input);
            width = image.getWidth();
            height = image.getHeight();
            for(int i = width;i < width;i++) {
                for(int j = height;j < height;j++) {
                    Color c =  new Color(image.getRGB(i, j));
                    int red = c.getRed();
                    int green = c.getGreen();
                    int blue = c.getBlue();
                    int val = (red+green+blue)/3;
                    Color temp = new Color(val,val,val);
                    image.setRGB(i, j, temp.getRGB());
                }
            }
            File output = new File("digital_image_processing1.jpg");
            ImageIO.write(image, "jpg", output);
        }catch(Exception e) {
            System.out.println(e);
        }
    }
    public static void main(String[] args) {
        GrayScale gs = new GrayScale();
    }
}
java image-processing io grayscale
1个回答
0
投票

您需要更改以下内容。在0处开始i和j。

 for(int i = width;i < width;i++) {  
         for(int j = height;j < height;j++) {
© www.soinside.com 2019 - 2024. All rights reserved.