Was ist der Unterschied zwischen Image und BufferedImage?Unterschied zwischen dem Image und BufferedImage in Java
Kann ich ein BufferedImage direkt aus einer Image-Quelle "image.png" erstellen?
Was ist der Unterschied zwischen Image und BufferedImage?Unterschied zwischen dem Image und BufferedImage in Java
Kann ich ein BufferedImage direkt aus einer Image-Quelle "image.png" erstellen?
Wenn Sie mit der util.List von Java vertraut sind, ist der Unterschied zwischen Image und BufferedImage derselbe wie der Unterschied zwischen List und LinkedList.
Image ist ein generisches Konzept und BufferedImage ist die konkrete Implementierung des generischen Konzepts; So ähnlich wie BMW ist eine Marke von einem Auto.
Bild ist eine abstrakte Klasse. Sie können Image nicht direkt instanziieren. BufferedImage ist ein Nachkomme, und Sie können diesen instanziieren. Also, wenn Sie abstrakte Klassen und Vererbung verstehen, werden Sie verstehen, wann sie zu verwenden sind.
Wenn Sie beispielsweise mehrere Image-Nachkommen verwenden, werden sie einige gemeinsame Eigenschaften teilen, die von Image übernommen werden.
Wenn Sie wollten eine Funktion schreiben, die entweder Art von Nachkomme als Parameter würden Sie so etwas tun könnte:
function myFunction(Image myImage) {
int i = myImage.getHeight();
...
}
Sie könnten dann die Funktion aufrufen, indem er eine BufferedImage oder eine VolatileImage vorbei.
BufferedImage myBufferedImage;
VolatileImage myVolatileImage;
...
myFunction(myVolatileImage);
myFunction(myBufferedImage);
Sie werden ein Bild nicht in ein BufferedImage konvertieren, da Sie nie ein Bild haben werden.
Was ist der Unterschied zwischen
Image
undBufferedImage
?
Wie bei Bildern in dem Oracle Java tutorial angegeben
für ArbeitsDie BufferedImage Klasse ist ein Eckpfeiler der Java 2D-Immediate-Mode-Bildgebung API. Es verwaltet das Bild im Speicher und bietet Methoden zum Speichern, Interpretieren und Erhalten von Pixeldaten. Da BufferedImage eine Unterklasse von Image ist, kann sie von den Graphics- und Graphics2D-Methoden gerendert werden, die einen Image-Parameter akzeptieren.
Ein BufferedImage ist im Wesentlichen ein Image mit einem zugreifbaren Datenpuffer. Es ist daher effizienter, direkt mit BufferedImage zu arbeiten. Ein BufferedImage hat ein ColorModel und einen Raster von Bilddaten. Das ColorModel bietet eine Farbinterpretation der Pixeldaten des Bildes.
Kann ich erstellen
BufferedImage
direkt von einer Bildquelle "image.png"?
Sicher.
BufferedImage img = ImageIO.read(getClass().getResource("/path/to/image"));