3 ответов:
класс Bitmap является реализацией класса Image. Класс Image-это абстрактный класс;
класс Bitmap содержит 12 конструкторов, которые строят объект Bitmap из разных параметров. Он может построить растровое изображение из другого растрового изображения и строковый адрес изображения.
Посмотреть подробнее в этом всестороннем образце.
это разъяснение, потому что я видел вещи, сделанные в коде, которые честно сбивают с толку - я думаю, что следующий пример может помочь другим.
как уже говорил ранее - точечный наследует от абстрактного изображения класс
Abstract эффективно означает, что вы не можете создать новый() экземпляр этого.
Image imgBad1 = new Image(); // Bad - won't compile Image imgBad2 = new Image(200,200); // Bad - won't compileно вы можете сделать следующее:
Image imgGood; // Not instantiated object! // Now you can do this imgGood = new Bitmap(200, 200);теперь вы можете использовать imgGood как вы был бы тот же растровый объект, если бы вы сделали следующее:
Bitmap bmpGood = new Bitmap(200,200);хорошая вещь здесь вы можете нарисовать объект imgGood с помощью графика объект
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);здесь imgGood может быть любой объект изображения-растровое изображение, Метафайл или что-нибудь еще, что наследуется от изображения!
изображение обеспечивает абстрактный доступ к произвольному изображению, оно определяет набор методов, которые могут логически применяться при любой реализации изображения. Он не ограничен каким-либо конкретным форматом изображения или реализацией . Растровое изображение представляет собой конкретную реализацию для изображения абстрактного класса, который инкапсулирует объект Windows с помощью GDI растровые. Bitmap-это просто конкретная реализация абстрактного класса Image, которая ретранслируется на объект GDI bitmap.
вы могли бы , например, создать свой собственная реализация абстрактного изображения, путем наследования от класса Image и реализации абстрактных методов.
в любом случае , это просто простое базовое использование ООП, его не должно быть трудно поймать.
Comments