Ich habe Probleme, die Unterschiede zwischen der Image
-Klasse und der Bitmap
-Klasse zu verstehen. Nun, ich weiß, dass die Bitmap
von der Image
erbt, aber von dem, was ich verstehe, sind beide sehr ähnlich. Kann jemand bitte etwas Licht darauf werfen?Bild und Bitmap-Klasse
Antwort
Die Bitmap-Klasse ist eine Implementierung der Image-Klasse. Die Image-Klasse ist eine abstrakte Klasse.
Die Bitmap-Klasse enthält 12 Konstruktoren, die das Bitmap-Objekt aus verschiedenen Parametern erstellen. Es kann die Bitmap aus einer anderen Bitmap und die String-Adresse des Bildes erstellen.
Weitere Informationen in this comprehensive sample.
Ich denke, du meinst eine Implementierung des abstrakten Bildes Klasse. – kenny
Image bietet einen abstrakten Zugriff auf ein beliebiges Bild, es definiert eine Reihe von Methoden, die logischerweise auf jede Implementierung von Image angewendet werden können. Es ist nicht an ein bestimmtes Bildformat oder eine Implementierung gebunden. Bitmap ist eine spezifische Implementierung für die abstrakte Image-Klasse, die Windows-GDI-Bitmap-Objekte kapselt. Bitmap ist nur eine spezifische Implementierung für die abstrakte Klasse "Image", die auf dem GDI-Bitmap-Objekt weiterleitet.
Sie könnten zum Beispiel Ihre eigene Implementierung zum Image-Abstract erstellen, indem Sie von der Image-Klasse erben und die abstrakten Methoden implementieren.
Wie auch immer, dies ist nur eine einfache Grundanwendung von OOP, es sollte nicht schwer zu fangen sein.
Dies ist eine Klarstellung, weil ich Dinge im Code getan habe, die ehrlich verwirrend sind - ich denke, das folgende Beispiel könnte anderen helfen.
Wie andere gesagt haben, bevor - Bitmap erbt von der abstrakten Bild Klasse
Abstrakt effektiv bedeutet, dass Sie eine neue() Instanz nicht erstellen können.
Image imgBad1 = new Image(); // Bad - won't compile
Image imgBad2 = new Image(200,200); // Bad - won't compile
Aber können Sie wie folgt vorgehen:
Image imgGood; // Not instantiated object!
// Now you can do this
imgGood = new Bitmap(200, 200);
Sie jetzt imgGood wie würden Sie das gleiche Bitmap-Objekt verwenden können, wenn Sie das folgende getan hatte:
Bitmap bmpGood = new Bitmap(200,200);
Die nette Sache hier ist, Sie können das imgGood Objekt mit einem Graphics Objekt
zeichnen Bitmap, Metafile, oder irgendetwas anderes, das von Bild erbt -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);
Hier imgGood kann jedes Image-Objekt sein!
- 1. Bild, Text/Bild und Bild in Android
- 2. Videodatei Bild für Bild lesen und anzeigen
- 3. Bild verarbeiten und duplizieren Bild, und in einem anderen Verzeichnis
- 4. Leinwand und Zeichnung Bild
- 5. Captcha Bild und Rohformat
- 6. Hochladen und Bild
- 7. Bild und Grafik Java
- 8. Bild zoomen und schwenken
- 9. JQuery Bild und Höhenanzeige
- 10. Bild UriSource und Datenbindung
- 11. Bild- und Menüpositionierung
- 12. css und Bild Sprites
- 13. Android und Zeichnung Bild
- 14. Varianz und Mittelwert von Bild
- 15. Android und Zeichnung Stern Bild
- 16. JSF Bild und absoluter Pfad
- 17. pinchgesture und zwei Bild-Zoom
- 18. Meldungsfeld mit Bild und Texteingabe
- 19. Denoise und Filter ein Bild
- 20. Senden und Bild durch goRPC
- 21. Text links und Bild rechts
- 22. Bild ausrichten und Höhe beibehalten
- 23. Wiederholen Bild horizontal und vertikal
- 24. Bild-Array speichern und lesen
- 25. Schienen Bild und Tracking-Schutz
- 26. WPF: Bild schneiden und speichern
- 27. Bild hochladen und holen Problem
- 28. Compass Sprite Bild und Skala
- 29. WPF-Bild und DirectX SurfaceFormat
- 30. Benutzerdefinierte Navigationsleiste Bild und Text
Passanten: Es gibt eine bessere Antwort richtig [hier] (http://stackoverflow.com/a/19678330/3367144) – kdbanman
Mögliche Duplikate von [Was ist der Unterschied zwischen System.Drawing.Image und System.Drawing.Bitmap ?] (http://stackoverflow.com/questions/19678195/what-ist-the-difference-between-system-drawing-image-and-system-drawing-bitmap) –