73 votes

Classe Image vs Bitmap

J'ai du mal à comprendre les différences entre les Image et la classe Bitmap classe. Maintenant, je sais que le Bitmap hérite de la Image mais d'après ce que j'ai compris, les deux sont très similaires. Quelqu'un peut-il m'éclairer à ce sujet ?

3 votes

Passant : il y a une meilleure réponse à droite aquí

2 votes

70voto

Richard Points 11249

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. Elle peut construire le Bitmap à partir d'un autre bitmap et de l'adresse de l'image sous forme de chaîne.

Voir plus dans cet échantillon complet .

7 votes

Je pense que vous voulez dire une implémentation de la classe d'image abstraite.

39voto

David Carta Points 341

Il s'agit d'une clarification parce que j'ai vu des choses faites dans le code qui sont honnêtement confuses - je pense que l'exemple suivant pourrait aider les autres.

Comme d'autres l'ont déjà dit - Bitmap hérite de l'abstrait Image classe

Abstrait signifie effectivement que vous ne pouvez pas créer une instance New() de celui-ci.

    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 fait ce qui suit :

    Bitmap bmpGood = new Bitmap(200,200);

Ce qui est bien ici, c'est que vous pouvez dessiner l'objet imgGood à l'aide d'une fonction Graphiques objet

    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 cualquier Objet Image - Bitmap, Metafile, ou tout autre objet qui hérite d'Image !

11voto

user88637 Points 2444

Image fournit un accès abstrait à une image arbitraire, il définit un ensemble de méthodes qui peuvent logiquement être appliquées à toute implémentation d'Image. Elle n'est pas liée à un format d'image particulier ou à une implémentation. Bitmap est une implémentation spécifique de la classe abstraite image qui encapsule l'objet bitmap de Windows GDI. Bitmap est juste une implémentation spécifique de la classe abstraite Image qui relaie l'objet bitmap GDI.

Vous pouvez, par exemple, créer votre propre implémentation de l'image abstraite, en héritant de la classe Image et en implémentant les méthodes abstraites.

Quoi qu'il en soit, il s'agit juste d'une simple utilisation de base de la POO, qui ne devrait pas être difficile à comprendre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X