Quelle est la différence entre Image et BufferedImage? Puis-je créer une image tamponnée directement à partir d'une source Image "image.png"?Différence entre l'image et l'image buffered en Java
Répondre
Si vous connaissez la liste util.List de Java, la différence entre Image et BufferedImage est la même que la différence entre List et LinkedList.
L'image est un concept générique et BufferedImage est l'implémentation concrète du concept générique; un peu comme BMW est une marque de voiture.
L'image est une classe abstraite. Vous ne pouvez pas instancier Image directement. BufferedImage est un descendant, et vous pouvez l'instancier. Donc, si vous comprenez les classes abstraites et l'héritage, vous comprendrez quand les utiliser. Par exemple, si vous utilisiez plusieurs descendants Image, ils partageront des propriétés communes héritées de Image.
Si vous voulez écrire une fonction qui prendrait soit sorte de descendant en tant que paramètre que vous pourriez faire quelque chose comme ceci:
function myFunction(Image myImage) {
int i = myImage.getHeight();
...
}
Vous pouvez ensuite appeler la fonction en la faisant passer un BufferedImage ou un VolatileImage. Vous ne convertirez pas une image en BufferedImage car vous n'aurez jamais d'image.
Quelle est la différence entre
Image
etBufferedImage
?
Comme indiqué dans le tutoriel Java Oracle pour travailler avec des images
- La classe java.awt.Image est la superclasse qui représente des images graphiques sous forme de tableaux rectangulaires de pixels.
- La classe java.awt.image.BufferedImage, qui étend la classe Image pour permettre à l'application de fonctionner directement avec les données d'image (par exemple, récupérer ou définir la couleur du pixel). Les applications peuvent directement construire des instances de cette classe.
La classe BufferedImage est une pierre angulaire de l'API d'imagerie en mode immédiat Java 2D. Il gère l'image en mémoire et fournit des méthodes pour stocker, interpréter et obtenir des données de pixel. Puisque BufferedImage est une sous-classe de Image, il peut être rendu par les méthodes Graphics et Graphics2D qui acceptent un paramètre Image.
Une image tamponnée est essentiellement une image avec un tampon de données accessible. Il est donc plus efficace de travailler directement avec BufferedImage. Un BufferedImage a un ColorModel et un raster de données d'image. Le ColorModel fournit une interprétation de la couleur des données de pixel de l'image.
Puis-je créer un
BufferedImage
directement à partir d'une source de l'image "image.png"?
Bien sûr.
BufferedImage img = ImageIO.read(getClass().getResource("/path/to/image"));
- 1. Java Buffered Lecteur
- 2. créer une image buffered clairsemée en Java
- 3. Java - Différence entre SwingWorker et SwingUtilities.invokeLater()
- 4. Différence entre "==" et "===" dans le script java
- 5. différence d'application mobile entre Java et C#
- 6. Java: Différence entre PrintStream et PrintWriter
- 7. Différence entre Groovy def et Java Object?
- 8. Différence entre Apache Struts et Java EE?
- 9. Différence entre mouseListener et mouseMotionListener dans Java?
- 10. différence de syntaxe entre les génériques en java et C#
- 11. Quelle est la différence entre JFrame et FramView en Java?
- 12. Différence entre init() et la méthode principale() en Java
- 13. Buffered vs unbuffered IO
- 14. différence entre System.out.printf et String.format
- 15. Différence entre Eclipse et NetBeans
- 16. Différence entre WebLogic et WebSphere?
- 17. Différence entre java.exe et javaw.exe
- 18. Différence entre sqlreader et
- 19. différence entre String.Empty et ""
- 20. VBA: Différence entre & et +
- 21. Différence entre référence et & *?
- 22. Différence en python entre basestring et types.StringType?
- 23. différence entre functionName() et functionName.call() en javascript
- 24. Différence entre long et int en C#?
- 25. différence entre AES iPhone (Objective-c) et Java
- 26. Différence entre la répartition double et le modèle de visiteur en Java et en C++
- 27. Java Différence détaillée entre les dates
- 28. Différence entre -Wconversion entre gcc et g ++
- 29. Différence entre les paramètres génériques Java
- 30. Différence entre l'importation dans Java et l'objectif C