Klasa Image vs Bitmap
Mam problem ze zrozumieniem różnic między klasą Image
a klasą Bitmap
. Wiem, że Bitmap
dziedziczy po Image
, ale z tego, co rozumiem, oba są bardzo podobne. Czy ktoś może rzucić na to trochę światła?
3 answers
Klasa Bitmap jest implementacją klasy Image. Klasa obrazu jest klasą abstrakcyjną;
Klasa Bitmap zawiera 12 konstruktorów, które konstruują obiekt Bitmap z różnych parametrów. Może on konstruować bitmapę z innej bitmapy oraz adres ciągów znaków obrazu.
Zobacz więcej w tej obszernej próbce .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-28 23:45:31
Jest to wyjaśnienie, ponieważ widziałem rzeczy zrobione w kodzie, które są szczerze mylące - myślę, że poniższy przykład może pomóc innym.
Jak już wcześniej mówili inni - Bitmap dziedziczy z abstrakcyjnego obrazu klasy
Abstract skutecznie oznacza, że nie można utworzyć nowej instancji ().
Image imgBad1 = new Image(); // Bad - won't compile
Image imgBad2 = new Image(200,200); // Bad - won't compile
Ale możesz wykonać następujące czynności:
Image imgGood; // Not instantiated object!
// Now you can do this
imgGood = new Bitmap(200, 200);
Możesz teraz używać imgGood tak jak ten sam obiekt bitmapowy, jeśli wykonałeś "following": {]}
Bitmap bmpGood = new Bitmap(200,200);
Fajną rzeczą jest to, że możesz narysować obiekt imgGood za pomocą Grafiki 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ćdowolnym obiektem obrazu - bitmapą, Metafile lub czymkolwiek innym, co dziedziczy z obrazu!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-19 07:10:39
Obraz zapewnia abstrakcyjny dostęp do dowolnego obrazu, definiuje zestaw metod, które można loggicznie zastosować przy dowolnej implementacji obrazu. Jego nie ogranicza się do żadnego konkretnego formatu obrazu lub realizacji . Bitmap jest specyficzną implementacją klasy image abstract, która enkapsuluje obiekt bitmapowy Windows GDI. Bitmap jest tylko specyficzną implementacją do klasy Image abstract, która przekazywana jest na obiekcie bitmap GDI.
Możesz np. stworzyć własną implementacja do abstrakcji obrazu, poprzez dziedziczenie z klasy obrazu i implementację metod abstrakcyjnych.
W każdym razie, jest to tylko proste podstawowe użycie OOP , nie powinno być trudne do złapania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-03 20:17:52