[英]Drawing using a bitmap on PictureBox in C#
我的第一個問題在這里。 而且我敢肯定,這很簡單,但是我在任何地方都找不到解決方案,我讀了很多書,也無法理解我該怎么做:
System.Drawing.Bitmap
,以便可以訪問GetPixel()方法 PictureBox
) 到目前為止,我所擁有的:
Bitmap
-並且可以正常工作( 中為 ) Graphic
,然后對其進行更改。 我不知道我在想什么。 這是代碼:MapCanvas是窗體上的PictureBox,所有內容都在MouseMove中,因為我試圖在指針周圍畫一些圈-沒用,所以我最終得到了這段代碼,也沒有用。 我已經閱讀了所有可以找到的問題,沒有任何幫助...這是代碼:
namespace Projekt_innowacje
{
public partial class MapForm : Form
{
Bitmap map_t;
Bitmap map;
public MapForm()
{
InitializeComponent();
map_t = new Bitmap("map.gif", true);
map = new Bitmap(map_t.Width, map_t.Height);
MapCanvas.Image = map;
}
private void MapCanvas_MouseMove(object sender, MouseEventArgs e)
{
Graphics canvas = Graphics.FromImage(map);
for (int i = 0; i <= map.Width; i++)
for (int j = 0; j <= map.Height; j++)
if (map.GetPixel(i, j) == Color.Red)
canvas.DrawLine(new Pen(Color.Blue), i, j, i + 1, j + 1);
// map.SetPixel(i, j, map.GetPixel(i, j)); // also doesn't work
//MapCanvas.Refresh();
MapCanvas.Invalidate();
canvas.Dispose();
}
}
}
除非對不共享的map
圖像進行其他更改,否則顯示的代碼將永遠不會修改畫布/地圖圖像。 在循環中,您測試map.GetPixel
,但是map
在構造函數中創建為空白圖像,因此其像素都不是Color.Red
。 您是否打算針對模板進行測試?
此外,你可能想看看這個問題,其中談到了對比色。 它建議對於基本顏色比較,在顏色結構上使用.ToArgb()
方法,因為==
和Equals
不只是比較顏色值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.