jak pobrać obrazek PictureBoxa

jak pobrać obrazek PictureBoxa
maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
0

Narysowałem obrazek korzystając z Graphics:

Kopiuj
Graphics tlo, tlobuffer;
tlo = MojPictureBox.CreateGraphics();

i metod:

Kopiuj
tlo.DrawRectangle(...) 

Jak pobrać obraz z tlo i zapisać jego kopię w tlobuffer?

maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
0

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?

maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
0

oki zrobiłem dwa przyciski, jeden zapamiętuje grafikę a drugi ma ją odtwarzać:

Kopiuj
 
//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 :(

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

A czemu sobie utrudniasz życie i używasz PictureBoxa nie tak, jak się go powinno używać?

maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
0

Teraz zrobiłem tak

Kopiuj
        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:

Kopiuj
 
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.

maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
0

somekind, a jak się powinno używać PictureBox?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.