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?

Author: S.Serpooshan, 2009-06-04

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 .

 60
Author: Richard,
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!

 33
Author: David Carta,
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.

 11
Author: user88637,
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