簡體   English   中英

如何將 Graphics 對象轉換為 Bitmap(或將其作為 Bitmap 訪問)

[英]How can I get a convert a Graphics object to a Bitmap (or access it as a Bitmap)

我知道整個

Bitmap bmp = new Bitmap(100,100) ;
Graphics graphics = Graphics.FromImage(bmp) ;

但這不是我需要做的。 基本上我想做的是稍微修改一些東西在屏幕上的繪制方式(它是一個中間有一條線的矩形)。 我需要改變矩形的背景(我可以用像素比較或其他類似的方法來做)。

如果我能以某種方式將它變成位圖。 沒有辦法(我可以告訴獲取/設置/修改)像素級別的圖形對象。

Bob Powell 寫了一篇關於直接訪問圖像位的優秀文章。

https://web.archive.org/web/20141229164101/http://bobpowell.net/lockingbits.aspx

您可以使用 for 循環來執行此操作,如下所示:

for(int i = 0; i < bmp.Width; i++)
{
    for(int j = 0; j < bmp.Height; j++)
    {
        var pixel = bmp.GetPixel(i, j);
        //do stuff with pixel here :)
    }
}

編輯:在看到 Tilak 的評論后,如果性能對你來說是個問題,那么他是對的! (謝謝,我不知道 LockBits!+1)可以在MS BitmapData Class 頁面上找到一些示例。 但是,如果這看起來很復雜,上面的方法應該可以解決問題:)

使用圖形后,只需保存位圖 - 對圖形所做的更改都會對位圖進行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM