75

Imageクラスとクラスの違いがよくわかりませんBitmap。今、私はBitmapからの継承を知っていますが、私Imageが理解していることから、両方が非常に似ています。誰でもこれに光を当てることができますか?

4

3 に答える 3

70

Bitmap クラスは Image クラスの実装です。Image クラスは抽象クラスです。

Bitmap クラスには、さまざまなパラメーターから Bitmap オブジェクトを構築する 12 のコンストラクターが含まれています。別のビットマップと画像の文字列アドレスからビットマップを構築できます。

詳細については、この包括的なサンプルを参照してください。

于 2009-06-03T20:16:21.900 に答える
39

正直なところ紛らわしいコードで行われたことを見たので、これは明確化です-次の例は他の人を助けるかもしれないと思います.

他の人が前に言ったように - Bitmapは Abstract Imageクラスから継承します

Abstract は事実上、その New() インスタンスを作成できないことを意味します。

    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);

ここで良い点は、Graphicsオブジェクトを使用して 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任意のImage オブジェクト (Bitmap、Metafile、または Image から継承したその他のもの) にすることができます。

于 2012-02-19T07:10:39.263 に答える
11

Image は、任意の image への抽象的なアクセスを提供し、Image の実​​装に論理的に適用できる一連のメソッドを定義します。特定の画像形式や実装に制限されていません。Bitmap は、Windows GDI ビットマップ オブジェクトをカプセル化するイメージ抽象クラスへの特定の実装です。Bitmap は、GDI ビットマップ オブジェクトを中継する Image 抽象クラスへの特定の実装です。

たとえば、Image クラスから継承して抽象メソッドを実装することにより、Image 抽象への独自の実装を作成できます。

とにかく、これは OOP の単純な基本的な使い方であり、理解するのは難しくありません。

于 2009-06-03T20:17:52.443 に答える