J'ai du mal à comprendre les différences entre la classe Image
et la classe Bitmap
. Maintenant, je sais que le Bitmap
hérite du Image
mais de ce que je comprends, les deux sont très similaires. Quelqu'un peut-il faire la lumière sur ce sujet s'il vous plaît?
La classe Bitmap est une implémentation de la classe Image. La classe Image est une classe abstraite;
La classe Bitmap contient 12 constructeurs qui construisent l'objet Bitmap à partir de différents paramètres. Il peut construire le Bitmap à partir d'un autre bitmap et l'adresse de chaîne de l'image.
Voir plus dans cet exemple complet .
C'est une clarification parce que j'ai vu des choses faites dans du code qui sont honnêtement déroutantes - je pense que l'exemple suivant pourrait aider les autres.
Comme d'autres l'ont déjà dit - Bitmap hérite de la classe Abstract Image
Résumé signifie que vous ne pouvez pas en créer une instance New ().
Image imgBad1 = new Image(); // Bad - won't compile
Image imgBad2 = new Image(200,200); // Bad - won't compile
Mais vous pouvez faire ce qui suit:
Image imgGood; // Not instantiated object!
// Now you can do this
imgGood = new Bitmap(200, 200);
Vous pouvez maintenant utiliser imgGood comme vous le feriez pour le même objet bitmap si vous aviez effectué les opérations suivantes:
Bitmap bmpGood = new Bitmap(200,200);
La bonne chose ici est que vous pouvez dessiner l'objet imgGood en utilisant un objet Graphics
Graphics gr = default(Graphics);
gr = Graphics.FromImage(new Bitmap(1000, 1000));
Rectangle rect = new Rectangle(50, 50, imgGood.Width, imgGood.Height); // where to draw
gr.DrawImage(imgGood, rect);
Ici imgGood peut être any Objet Image - Bitmap, métafichier ou tout autre élément héritant d'Image!
Image fournit un accès abstrait à une image arbitraire, il définit un ensemble de méthodes qui peuvent logiquement être appliquées à n'importe quelle implémentation d'Image. Ce n'est lié à aucun format d'image ou implémentation particulier. Bitmap est une implémentation spécifique à la classe abstraite image qui encapsule les fenêtres GDI objet bitmap. Bitmap est juste une implémentation spécifique à la classe abstraite Image qui relaie sur GDI = Objet bitmap.
Vous pouvez par exemple, créer votre propre implémentation dans le résumé Image, en héritant de la classe Image et en implémentant les méthodes abstraites.
Quoi qu'il en soit, ce n'est qu'une simple utilisation de base de OOP, cela ne devrait pas être difficile à attraper.