Я смущен тем, что отличается между System.Drawing.Image
и System.Drawing.Bitmap
Может кто-нибудь объяснить основную разницу между этими двумя типами?
И зачем использовать System.Drawing.Bitmap вместо System.Drawing.Image?
Я смущен тем, что отличается между System.Drawing.Image
и System.Drawing.Bitmap
Может кто-нибудь объяснить основную разницу между этими двумя типами?
И зачем использовать System.Drawing.Bitmap вместо System.Drawing.Image?
Bitmap
наследуется от Image
:
System.Drawing.Bitmap : System.Drawing.Image
{ }
Image
- абстрактный класс, это означает:
Абстрактный модификатор указывает, что модифицируемая вещь имеет недостающую или неполную реализацию.
Bitmap
является закрытым классом, это означает:
При применении к классу запечатанный модификатор предотвращает наследование других классов.
См. следующее:
Bitmap bmp = new Bitmap(filename); // Works
Image img = new Image(); // The compiler says: "Cannot access internal constructer 'Image' here.
Это потому, что Image
не предназначен для использования таким образом.
Он просто предоставляет функциональные возможности для класса Bitmap
.
Таким образом, всегда используйте Bitmap
вместо Image
.
Не уверен, что вы имеете в виду разницу?
System.Drawing.Image
- базовый класс для System.Drawing.Bitmap
.
System.Drawing.Image
также является абстрактным классом, поэтому вы не можете создать его экземпляр. Вам нужно будет создать экземпляр System.Drawing.Bitmap
.
Image.FromFile
, Image.BlahBlah... возвращает только экземпляр Bitmap
.
Как документация MSDN четко заявляет о System.Drawing.Image
:
Абстрактный базовый класс, который предоставляет функциональные возможности для классов Bitmap и Metafile.
Поэтому вы не можете сравнивать их. Класс System.Drawing.Bitmap
представляет собой конкретную реализацию абстрактного класса System.Drawing.Image
.
Изображение представляет собой базовый абстрактный класс, представляющий растровое изображение. Bitmap - это одна реализация этого абстрактного класса на основе GDI +.