Narysowałem obrazek korzystając z Graphics:
Graphics tlo, tlobuffer;
tlo = MojPictureBox.CreateGraphics();
i metod:
tlo.DrawRectangle(...)
Jak pobrać obraz z tlo i zapisać jego kopię w tlobuffer?
Narysowałem obrazek korzystając z Graphics:
Graphics tlo, tlobuffer;
tlo = MojPictureBox.CreateGraphics();
i metod:
tlo.DrawRectangle(...)
Jak pobrać obraz z tlo i zapisać jego kopię w tlobuffer?
bo rozumiem, że graphics jest pewnym urządzeniem rysującym. A może da się jakoś pobrać obraz (ale nie PictureBox.Image bo to jest null) PictureBoxa?
oki zrobiłem dwa przyciski, jeden zapamiętuje grafikę a drugi ma ją odtwarzać:
//zapamietywanie obrazu grafiki
public void memorize()
{
Image img;
img = new Bitmap(this.pb.Width, this.pb.Height, tlo);
this.buffertlo = Graphics.FromImage(img);
}
//odtwarzanie obrazu grafiki w PictureBox
public void remember()
{
this.tlo = this.buffertlo;
}
Ale nie działa odtwarzanie :(
A czemu sobie utrudniasz życie i używasz PictureBoxa nie tak, jak się go powinno używać?
Teraz zrobiłem tak
Image img1;
public void memorize()
{
//tworze bitmape o rozmiarach mojego PictureBox
img1 = new Bitmap(this.pb.Width, this.pb.Height);
//ustawiam na niego grafiksa
this.tlo = Graphics.FromImage(img1);
//ustawiam wskazanie Picture Boxa na obraz img1
this.pb.BackgroundImage = img1;
}
public void RefreshPictureBox()
{
//odswiezanie PictureBoxa
this.pb.Refreash();
}
Dalej w kodzie wywołuję tak:
private void button13_Click(object sender, EventArgs e)
{
dm.memorize();
//ta funkcja rysuje po bitmapie
dm.DrawColorRects();
}
private void button14_Click(object sender, EventArgs e)
{
//odswiezenie Picture Boxa
dm.RefreshPictureBox();
}
No i działa, obraz jest cały czas wyświetlany.
somekind, a jak się powinno używać PictureBox?