1
我想弄清楚哪個顏色的像素,我以前畫紅色。GDI:找出哪個顏色的像素,我畫了
所以當我讀到它不可能直接做到這一點,將我的圖形對象轉換爲一個位圖,它具有函數GetPIxel和相同的寬度/高度作爲我的圖形對象。否則,我認爲它不會起作用。
但是它總是返回我:顏色[A = 0,R = 0,G = 0,B = 0]
我的猜測意味着白色。
這裏是我的代碼:
namespace GDi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.components = new System.ComponentModel.Container();
this.Size = new System.Drawing.Size(400, 400);
this.Text = "Display At Startup";
this.BackColor = Color.White;
}
private void Form1_Load(object sender, EventArgs e)
{
Graphics dc = this.CreateGraphics();
this.Show();
Pen BluePen = new Pen(Color.Blue, 3);
dc.DrawRectangle(BluePen, 0, 0, 50, 50);
Pen RedPen = new Pen(Color.Red, 2);
dc.DrawEllipse(RedPen, 20, 70, 80, 0);
dc.DrawEllipse(RedPen, 2, 88, 300, 0);
Bitmap myBitmap = new Bitmap(400, 400, dc);
string test = myBitmap.GetPixel(2, 88).ToString();
MessageBox.Show(test);
}
}
}
任何想法,爲什麼它doesent作品?
'DrawEllipse'方法取出限定橢圓的矩形的左上角和右下角點。你正在看那些不在橢圓上的角落。你試過(50,50),應該是藍色的? – juharr
從MSDN開始,關於'Bitmap(int,int,Graphics)':* *用指定大小和**指定Graphics對象的分辨率**初始化Bitmap類的新實例。「*它只使用DpiX和圖形對象的DpiY,它不復製圖像。 –
把'this.CreateGraphics();'改成'Graphics.FromImage(myBitmap);'你試圖在控制圖像的時候(而不是位圖)從位圖中獲取像素。 – Fabjan