ここで私の最初の質問。そして、それは簡単なものだと確信していますが、どこにも解決策が見つかりません。たくさん読んだだけで、何をする必要があるのか 理解できません。
System.Drawing.Bitmap
GetPixel() メソッドにアクセスできるように、に保存したい *.gif ファイルがあります。- 私は自分の絵をいくつかのコントロールに置きたいです(現在試してい
PictureBox
ます)
これまでのところ、私が持っているもの:
- ファイルからテンプレートを作成
Bitmap
します-そしてそれは機能します(コード内のmap_t ) - 実際に描画されるビットマップを作成します ( map )
- PictureBox イメージをビットマップに設定できます
- このビットマップを変更できません。または、できますが、結果が表示されません
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();
}
}
}