Mam problemy ze zrozumieniem różnic między klasą Image
a klasą Bitmap
. Teraz wiem, że Bitmap
dziedziczy po Image
, ale z tego, co rozumiem, oba są bardzo podobne. Czy ktoś może rzucić trochę światła na to?Image vs Bitmap class
Odpowiedz
Klasa Bitmap jest implementacją klasy Obraz. Klasa Obraz jest klasą abstrakcyjną;
Klasa Bitmap zawiera 12 konstruktorów, które konstruują obiekt Bitmap z różnych parametrów. Może tworzyć bitmapę z innej bitmapy i adres ciągów obrazu.
Zobacz więcej in this comprehensive sample.
Myślę, że masz na myśli implementację abstrakcyjnego obrazu klasa. – kenny
Obraz zapewnia abstrakcyjny dostęp do dowolnego obrazu, definiuje zestaw metod, które można logicznie zastosować przy każdej implementacji obrazu. Nie jest związany z żadnym konkretnym formatem lub implementacją obrazu. Bitmap to specyficzna implementacja klasy abstrakcji obrazu, która zawiera obiekt bitmapowy Windows GDI. Bitmapa to specyficzna implementacja klasy abstrakcji obrazu, która jest przekazywana na obiekcie bitmapowym GDI.
Można na przykład utworzyć własną implementację do abstrakcji obrazu, dziedzicząc z klasy obrazu i wdrażając metody abstrakcyjne.
W każdym razie, jest to proste proste użycie OOP, nie powinno być trudne do złapania.
To jest wyjaśnienie, ponieważ widziałem rzeczy wykonane w kodzie, które są naprawdę mylące - myślę, że poniższy przykład może pomóc innym.
Jak mówili inni wcześniej - Bitmap dziedziczy po Streszczenie obrazu klasy
Streszczenie efektywnie oznacza, że nie można utworzyć nowy() instancji niego.
Image imgBad1 = new Image(); // Bad - won't compile
Image imgBad2 = new Image(200,200); // Bad - won't compile
Ale można wykonać następujące czynności:
Image imgGood; // Not instantiated object!
// Now you can do this
imgGood = new Bitmap(200, 200);
Można teraz używać imgGood jak byś ten sam obiekt bitmapy jeśli zrobił, co następuje:
Bitmap bmpGood = new Bitmap(200,200);
fajną rzeczą jest to, że możesz narysować obiekt imgGood przy użyciu obiektu Graphics obiektu
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);
Tutaj imgGood może być dowolny obiekt Image - bitmapy, Metafile, lub cokolwiek innego, co dziedziczy z obrazka!
- 1. Load Contact Image Into Bitmap
- 2. Object vs Class vs Function
- 3. Static Class vs Singleton
- 4. Core Image vs Core Graphics
- 5. Java Utility Class vs. Service
- 6. Python Class vs. Module Attributes
- 7. CSS: #id .class VS .class performance. Co jest lepsze?
- 8. WPF Bitmap wydajność
- 9. Scope vs Class Method in Rails 3
- 10. Enum vs Constants/Class with Static Members?
- 11. Builder Pattern inside vs outside class?
- 12. Python class variable int vs array
- 13. Jak zapisać bitmap jako ikonę?
- 14. Ładowanie dużych bitmap przez Androida
- 15. AsyncTask loading image RecyclerView
- 16. Android - ImageView: setImageBitmap VS setImageDrawable
- 17. jquery: fade in image after image
- 18. Released nieznany bitmap reference
- 19. Publikacja bitmap z Android.view.GLES20DisplayList
- 20. Delphi TImageList Bitmap Zmiany
- 21. Buforowanie siatkówki i bitmap
- 22. Crop Image as circle in Android
- 23. Android: Universal Image Loader Załaduj duży obraz
- 24. class << self vs self.method with Ruby: co lepsze?
- 25. Fresco programowo dodaje Bitmap do pamięci podręcznej
- 26. Android - Image Warp effect
- 27. Łączenie CoverFlow i Universal Image Loader
- 28. Responsive CSS Image Anchor tags - Image Maps style
- 29. LESS CSS Dynamic Class Name
- 30. force download image base64
Passersby: jest lepsza odpowiedź w prawo [tutaj] (http://stackoverflow.com/a/19678330/3367144) – kdbanman
Możliwy duplikat [Jaka jest różnica między System.Drawing.Image i System.Drawing.Bitmap ?] (http://stackoverflow.com/questions/19678195/what-is-the-difference-between-system-drawing-image-and-system-drawing-bitmap) –