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通道,我只是想复制的像素。
非常感谢,非常快! :-)它当然很好,当然... – Paya 2010-04-10 19:27:10