내 첫 번째 질문은 여기에 있습니다. 그리고 그것은 쉬운 일이지만, 솔루션을 찾을 수 없는데, 많은 것을 읽었고, 내가해야 할 일을 어떻게 이해할 수 없는지 알았습니다.C에서 PictureBox에 비트 맵을 사용하여 그리기 #
- 나는 *을 가지고 있습니다. GIF 파일, 내가 getPixel와에 액세스 할 수 있도록 내가
System.Drawing.Bitmap
에 저장할 - 내가 어떤 컨트롤에 내 그림을 갖고 싶어() 메소드 지금까지 내가 '무엇을
을 (현재 PictureBox
을 시도) 가지고있어 :
- 내가 파일에서 템플릿,
Bitmap
을 만들 - (코드 map_t) - 내가 실제로 그려 질 비트 맵을 생성 (지도)
- 을하고 작동 나는 비트 맵 내에 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();
}
}
}
BMP 또는 JPEG를 사용해 보셨습니까? GIF는 색인 된 색상을 사용하며 대개 임의로 그릴 수 없습니다. – Ani
GIF 파일에서만 픽셀을 읽으므로이 문제는 없습니다. 보시다시피, 나는 gif 파일 크기의 새로운 비어있는 비트 맵을 그려 봅니다. – wasyl
아, 내 실수. – Ani