2010-04-10 131 views
0

我有一個Format32bppArgb後備緩衝,在那裏我畫一些線路:繪製位圖的alpha通道

var g = Graphics.FromImage(bitmap); 
g.Clear(Color.FromArgb(0)); 
var rnd = new Random(); 
for (int i = 0; i < 5000; i++) { 
    int x1 = rnd.Next(ClientRectangle.Left, ClientRectangle.Right); 
    int y1 = rnd.Next(ClientRectangle.Top, ClientRectangle.Bottom); 
    int x2 = rnd.Next(ClientRectangle.Left, ClientRectangle.Right); 
    int y2 = rnd.Next(ClientRectangle.Top, ClientRectangle.Bottom); 
    Color color = Color.FromArgb(rnd.Next(0, 255), rnd.Next(0, 255), rnd.Next(0, 255)); 

    g.DrawLine(new Pen(color), x1, y1, x2, y2); 
} 

現在我想在Paint事件複製bitmap。我不喜歡這樣:

void Form1Paint(object sender, PaintEventArgs e) 
{ 
    e.Graphics.DrawImageUnscaled(bitmap, 0, 0); 
} 

Hovewer,所述DrawImageUnscaled拷貝像素並應用alpha通道,從而像素具有α== 0將不具有任何影響。但我需要原始字節複製,所以alpha = 0的像素也被複制。所以這些操作的結果應該是e.Graphics包含bitmap的確切字節拷貝。怎麼做?

摘要:當繪製一個位圖,我不想申請alpha通道,我只是想複製的像素。

回答