[英]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.