Подтвердить что ты не робот

В чем разница между System.Drawing.Image и System.Drawing.Bitmap?

Я смущен тем, что отличается между System.Drawing.Image и System.Drawing.Bitmap

Может кто-нибудь объяснить основную разницу между этими двумя типами?

И зачем использовать System.Drawing.Bitmap вместо System.Drawing.Image?

4b9b3361

Ответ 1

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.

Ответ 2

Не уверен, что вы имеете в виду разницу?

System.Drawing.Image - базовый класс для System.Drawing.Bitmap.

System.Drawing.Image также является абстрактным классом, поэтому вы не можете создать его экземпляр. Вам нужно будет создать экземпляр System.Drawing.Bitmap.

Image.FromFile, Image.BlahBlah... возвращает только экземпляр Bitmap.

Ответ 3

Как документация MSDN четко заявляет о System.Drawing.Image:

Абстрактный базовый класс, который предоставляет функциональные возможности для классов Bitmap и Metafile.

Поэтому вы не можете сравнивать их. Класс System.Drawing.Bitmap представляет собой конкретную реализацию абстрактного класса System.Drawing.Image.

Ответ 4

Изображение представляет собой базовый абстрактный класс, представляющий растровое изображение. Bitmap - это одна реализация этого абстрактного класса на основе GDI +.