Изображение против растрового класса



у меня проблемы с пониманием различий между Image класс а Bitmap класса. Теперь я знаю, что Bitmap наследует от Image но из того, что я понимаю, оба очень похожи. Может кто-нибудь пролить свет на это, пожалуйста?

558   3  

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

    Ничего не найдено.