3

Graphics オブジェクトから Bitmap オブジェクトを作成するには? Graphics オブジェクトからピクセルを読み取りたいと思います。たとえば、System.Drawing.BitMap.GetPixel() などです。

グラフィック/画像を書き込むために、pdfドキュメント内の空の領域(すべて白または任意の色)を見つけようとしています。私はこのように試しましたが、うまくいきません。次のコードが期待どおりに動作しないのはなぜですか?

//
// System.Drawing.Bitmap
// System.Drawing.Graphics
//
Bitmap b = new Bitmap(width, height, graphics);

//
// In this case, for any (i, j) values, Bitmap.GetPixel returns 0
//
int rgb = b.GetPixel(i, j).ToArgb();

(この質問を.netのみのコンテキストで再度投稿し、他のライブラリの依存関係を削除します)

4

3 に答える 3

0

最初にビットマップを作成し、次にこのビットマップからグラフィックを作成し、グラフィックを操作してから、ビットマップを保存(または操作)する必要があります。

コードは次のようになります。

using (Bitmap image = new Bitmap(X, Y))
{
    using (Graphics gr = Graphics.FromImage(image))
    {
        // work with graphics, Draw objects
    }
    image.Save("YourPathToFile"); // Or GetPixel, if you want
}

Bitmapのコンストラクターは、解決のためにのみGraphicsを取得するため、コードは例外として機能していません。MSDNは伝えますInitializes a new instance of the Bitmap class with the specified size and with the resolution of the specified Graphics object.

于 2010-06-11T12:33:02.250 に答える
0

理想的には、GetPixel/SetPixel を避け、ビットマップへの安全でないアクセス メソッドを使用して速度を上げたいと考えています。

System.Drawing.Graphics グラフィックス = System.Drawing.Graphics.FromImage(ビットマップ);

次に、グラフィックス インスタンスを使用します。思い出すと、グラフィックス オブジェクトを変更するとビットマップが変更されます。

于 2010-06-11T11:51:25.620 に答える