這會產生條紋而不是點。爲什麼?我正在嘗試繪製各個像素。還嘗試了另一種方法(使用fillrectangle),該方法也沒有給出所需的結果,得到了條而不是點。爲什麼這個簡單的C#試用版不能工作
protected override void OnPaint(PaintEventArgs pea)
{
Graphics g = pea.Graphics ;
for (int y = 1 ; y <= Width ; y++)
{
for ( int x = 1 ; x <= Height ; x++)
{
System.Random rand = new System.Random() ;
Color c = (Color.FromArgb(rand.Next(256),
rand.Next(256),
rand.Next(256)));
// SolidBrush myBrush = new SolidBrush(c);
// g.FillRectangle(myBrush, x, y, 1, 1);
Bitmap pt = new Bitmap(1, 1);
pt.SetPixel(0, 0, c);
g.DrawImageUnscaled(pt, x, y);
}
}
}
這裏發生了什麼?
不是它回答你的問題。但令人困惑的是,你會使用X遍歷垂直位置,並且y在水平方向上延伸 – Toad
要繼續這個想法:既然你在DrawImageUnscaled調用中正確使用了x和y,但是在循環中錯誤地使用它們,我懷疑不是你的圖片全部會被填充 – Toad
nitpick3:我無法想象DarImageUnscaled會使用它的座標系,從1開始。所以你的循環應該從0開始。 – Toad