Java 无法实例化类型ColorModel
请不要讨厌这个“一般性问题”,因为它确实是一个问题。我还搜索了其他问题,问题总是人们想要实例化接口。那不是我的情况 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
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));
}
}