gpt4 book ai didi

java - 将 ImageIO.read 用于扩展 BufferedImage 的类

转载 作者:行者123 更新时间:2023-11-29 10:15:53 26 4
gpt4 key购买 nike

(什么人反对你好?)

我有一个扩展 BufferedImage 的类:

public class NamedImage extends BufferedImage{
String name;
public NamedImage(int width, int height, int imageType) {
super(width, height, imageType);
}
public void setName(String text){
name = text;
}
}

在我有这个之前,我得到了我的图像:

Image image = ImageIO.read(res);

现在,我想将其转换为 NamedImage,但以下尝试不起作用:

NamedImage image = ImageIO.read(res);
NamedImage image = (NamedImage) ImageIO.read(res);

我怎样才能实现我想做的事情?为什么我不能将缓冲图像转换到扩展此自定义类的类中?

(什么人反对谢谢你?)

最佳答案

您可以将子类的实例转换为其父类。但是你不能将父类(super class)的实例转换为子类

您可以尝试使用这样的解决方案:

public class NamedImage extends BufferedImage {

private String name;

public NamedImage(BufferedImage img,String name){
super(img.getWidth(),img.getHeight(),img.getType());
setData(img.getData());
this.name=name;
}


public NamedImage(int width, int height, int imageType) {
super(width, height, imageType);

}

public void setName(String text) {
name = text;
}

public static void main(String args[]) throws IOException {
NamedImage image = new NamedImage(ImageIO.read(new File("/Users/igor/Downloads/cats-coloring.gif")),"A cat");

}
}

关于java - 将 ImageIO.read 用于扩展 BufferedImage 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18162926/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com