Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.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 如何将BuffereImage转换为映像?_Java_Image_Bufferedimage - Fatal编程技术网

Java 如何将BuffereImage转换为映像?

Java 如何将BuffereImage转换为映像?,java,image,bufferedimage,Java,Image,Bufferedimage,我正在尝试将一副卡片的图像拆分,并将单个卡片存储到一个图像中 Image image; BufferedImage deck = ImageIO.read( new URL( "http://www.jfitz.com/cards/classic-playing-cards.png" ) ); image = deck.getSubimage( x, y, width, height ); 不兼容类型:无法将BuffereImage转换为Image 我看过的地方都说BuffereImage是一

我正在尝试将一副卡片的图像拆分,并将单个卡片存储到一个图像中

Image image;
BufferedImage deck = ImageIO.read( new URL( "http://www.jfitz.com/cards/classic-playing-cards.png" ) );
image = deck.getSubimage( x, y, width, height );
不兼容类型:无法将BuffereImage转换为Image

我看过的地方都说BuffereImage是一个映像,这个问题不应该存在。(注意:如果这看起来像是一个类分配,那就是,但是我们要做的就是从一个预先确定的目录加载一个图像。为了好玩,我尝试通过使用URL来更进一步。)

编辑2014年9月4日 我一直在使用不同的导入,所以我想我真正想问的问题是如何将java.awt.image.buffereImage转换为java.scene.image.image。谢谢你迄今为止的帮助

Image image = new ImageIcon(bufferedImage).getImage();
我通常就是这样做的。。。 或

我通常就是这样做的。。。 或


BuffereImage扩展了映像,这意味着您可以像这样声明BuffereImage:

Image myImage = ImageIO.read(new URL("my/url"));
这就开始进入多态性和继承。您的对象可能是一个BuffereImage,但BuffereImage仍然是一个映像,可以作为一个映像使用

一个更容易识别的例子可能是将ArrayList实例化为列表

List<MyType> aList = new ArrayList<>();
List aList=new ArrayList();
这允许此ArrayList与所有类型的列表对象兼容,就像BuffereImage一样

请看下面的图片


它列出了这个抽象类的所有已知子类,包括BuffereImage。(只有2。)

BuffereImage扩展映像,这意味着您可以像这样声明BuffereImage:

Image myImage = ImageIO.read(new URL("my/url"));
这就开始进入多态性和继承。您的对象可能是一个BuffereImage,但BuffereImage仍然是一个映像,可以作为一个映像使用

一个更容易识别的例子可能是将ArrayList实例化为列表

List<MyType> aList = new ArrayList<>();
List aList=new ArrayList();
这允许此ArrayList与所有类型的列表对象兼容,就像BuffereImage一样

请看下面的图片

它列出了这个抽象类的所有已知子类,包括BuffereImage。(只有2个。)

是的一个子类您不需要进行任何转换。

您可以像这样分配:

Image image;
BufferedImage deck = ImageIO.read( new URL( "http://www.jfitz.com/cards/classic-playing-cards.png" ) );
image = deck;// That will do
是的一个子类您不需要进行任何转换。

您可以像这样分配:

Image image;
BufferedImage deck = ImageIO.read( new URL( "http://www.jfitz.com/cards/classic-playing-cards.png" ) );
image = deck;// That will do

一旦我知道该问什么问题,谷歌很快就回答了。我找到了一个快速解决方法


试过了,效果很好

一旦我知道该问什么问题,谷歌很快就回答了。我找到了一个快速解决方法


试过了,效果很好

实际上,
BufferedImage
Image
的一个子类。您使用的是什么版本的Java编译器?你确定你正在导入正确的
Image
类吗?你确定
Image
类型是
java.awt.Image.Image
并且不是来自其他包的
Image
吗?你在文件顶部使用了什么
import
语句?也许你应该看看这个答案。下面的所有答案似乎都假设您指的是
java.awt.Image
,在这种情况下,任何
buffereImage
都可以分配给
Image
(答案没有多大意义)。问题很可能是您的导入错误(如
javafx.scene.image.image
或类似),或者您确实需要不同类型的
图像
(在这种情况下,您必须告诉我们哪种图像可以得到任何有意义的帮助)。事实上,
BufferedImage
图像
的一个子类。您使用的是什么版本的Java编译器?你确定你正在导入正确的
Image
类吗?你确定
Image
类型是
java.awt.Image.Image
并且不是来自其他包的
Image
吗?你在文件顶部使用了什么
import
语句?也许你应该看看这个答案。下面的所有答案似乎都假设您指的是
java.awt.Image
,在这种情况下,任何
buffereImage
都可以分配给
Image
(答案没有多大意义)。问题很可能是您的导入错误(如
javafx.scene.image.image
或类似),或者您确实需要一种不同类型的
image
(在这种情况下,您必须告诉我们哪种图像可以得到任何有意义的帮助)。我同意,它应该可以正常工作。除了OP声明他们的编译器在这里抱怨之外,我同意,它应该可以工作。除了OP声明他们的编译器在这里抱怨之外,没有必要做任何事情。
BufferedImage
是一个
图像
(即
BufferedImage扩展图像
)。正如其他人所指出的,这并不完全正确。有不同的图像类(AWT、SWT等)。BuffereImage扩展了AWT映像,但不是SWT映像,而且从BI到SWT映像没有简单的方法,这就是我遇到的问题(正是这个问题把我带到了这里)。不需要做任何事情。
BufferedImage
是一个
图像
(即
BufferedImage扩展图像
)。正如其他人所指出的,这并不完全正确。有不同的图像类(AWT、SWT等)。BuffereImage扩展了AWT映像,但不是SWT映像,而且从BI到SWT映像没有简单的方法,这就是我遇到的问题(这就是我来到这里的原因)。