Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法实例化类型ColorModel_Java_Awt_Bufferedimage - Fatal编程技术网

Java 无法实例化类型ColorModel

Java 无法实例化类型ColorModel,java,awt,bufferedimage,Java,Awt,Bufferedimage,请不要讨厌这个“一般性问题”,因为它确实是一个问题。我还搜索了其他问题,问题总是人们想要实例化接口。那不是我的情况 ColorModel类不是接口,它的构造函数接受int。为什么会出现“无法实例化ColorModel类型”错误 代码如下: package test; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.io.File; import java.io.IOExcept

请不要讨厌这个“一般性问题”,因为它确实是一个问题。我还搜索了其他问题,问题总是人们想要实例化接口。那不是我的情况

ColorModel类不是接口,它的构造函数接受
int
。为什么会出现“无法实例化ColorModel类型”错误

代码如下:

package test;

import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class BufferedImageGetRGB {

    public static void main(String...args) {

        BufferedImage img = null;
        try {
            img = ImageIO.read(new File("C:\\Users\\xxxxx\\Desktop\\testbinary.png"));
        } catch (IOException e) {}

        for (int y=0; y<img.getHeight(); ++y) {
            for (int x=0; x<img.getWidth(); ++x) {
                System.out.println(img.getRGB(y, x));
                ColorModel cm = new ColorModel(img.getRGB(y, x));
            }
        }
    }
}
封装测试;
导入java.awt.image.buffereImage;
导入java.awt.image.ColorModel;
导入java.io.File;
导入java.io.IOException;
导入javax.imageio.imageio;
公共类BufferedImageGetRGB{
公共静态void main(字符串…参数){
BuffereImage img=null;
试一试{
img=ImageIO.read(新文件(“C:\\Users\\xxxxx\\Desktop\\testbinary.png”);
}捕获(IOE){}

对于(int y=0;y您不能直接实例化
ColorModel
类型的对象,因为该类型是抽象的,与接口相同,抽象类型不能直接构造。API还将告诉您可能可用的具体子类型。不过,这里的教训是n与接口类型问题非常相似,解决方案也很相似--遇到此类问题时总是检查API

请注意,通过调用图像的
getColorModel()
方法,可以直接从
BuffereImage
获取图像的
ColorModel
。不确定为什么要在for循环中重复创建新图像

i、 e

buffereImage img=null;
试一试{
img=ImageIO.read(新文件(“C:\\Users\\xxxxx\\Desktop\\testbinary.png”);
}捕获(IOE异常){
e、 printStackTrace();//永远不要将此块留空**********
//退出这里的程序?
}
ColorModel cm=img.getColorModel();

对于(int y=0;y您不能直接实例化
ColorModel
类型的对象,因为该类型是抽象的,与接口相同,抽象类型不能直接构造。API还将告诉您可能可用的具体子类型。不过,这里的教训是n与接口类型问题非常相似,解决方案也很相似--遇到此类问题时总是检查API

请注意,通过调用图像的
getColorModel()
方法,可以直接从
BuffereImage
获取图像的
ColorModel
。不确定为什么要在for循环中重复创建新图像

i、 e

buffereImage img=null;
试一试{
img=ImageIO.read(新文件(“C:\\Users\\xxxxx\\Desktop\\testbinary.png”);
}捕获(IOE异常){
e、 printStackTrace();//永远不要将此块留空**********
//退出这里的程序?
}
ColorModel cm=img.getColorModel();

对于(int y=0;yOh-man,我没有看到它是抽象的。这解决了问题。我检查了API,但标题是“Class ColorModel”。没想到它会是抽象的。谢谢+1Oh-man,我没有看到它是抽象的。这解决了问题。我检查了API,但标题是“Class ColorModel”.没想到会是抽象的.谢谢+1
BufferedImage img = null;
try {
    img = ImageIO.read(new File("C:\\Users\\xxxxx\\Desktop\\testbinary.png"));
} catch (IOException e) {
   e.printStackTrace(); // never leave this block empty ********** 
   // exit program here?
}

ColorModel cm = img.getColorModel();

for (int y=0; y<img.getHeight(); ++y) {
    for (int x=0; x<img.getWidth(); ++x) {
        System.out.println(img.getRGB(y, x));
        // ColorModel cm = new ColorModel(img.getRGB(y, x));
    }
}