Print scren konkretnego obiektu

Print scren konkretnego obiektu
marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
0

Witam
Chciałabym zrobić print screena konkretnemu obiektowi na akcje buttona.Przykładowo, mam panel1 i coś rysuje na nim, co zrobić, aby po kliknąwszy odpowiedniego buttona aktualny stan panelu się zapisywał?

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
0

nie lepiej, ponieważ zależy mi tylko na rysunku który narysuje, nie potrzebne mi na scrinie butony i inne...

RE
  • Rejestracja: dni
  • Ostatnio: dni
1

Rysuj po Image, który jest właściwością PictureBox. W ten sposób o wiele prościej odzyskasz ten bufor.

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
0

no a jak tego dokonać? tzn jak zrobic tego print screna?

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
0

tylko jak wykonać nawet normalnego print screna bo tego przykłądu z msdn nie rozumiem;/

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
0

juz obojetnie, potem dostosuje do swoich potrzeb

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
0

a co oczekujesz w zamian?

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
4

jeju... przecież ja się uczę i tylko chce się dowiedzieć jak robi się prostego print scrina. Każdemu kto ma problem z czegoś zrobieniem odsyłacie do działu zlecenia? Myślałam, że proponując mi wykonanie programu robiącego print scirn, przślesz mi kawałem kodu, dzięki któremu rozkminie jak to działa.

underTaker
  • Rejestracja: dni
  • Ostatnio: dni
2

Myślałem, że jesteście troszkę bardziej profesjonalni, domyślam się, że chodzi o język C#, bo nigdzie nie padła nazwa języka. Sam printscreen to banał, wystarczą 3 linijki kodu (pobierać opłatę za program 3-linijkowy? ;S ):

Kopiuj
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graph = Graphics.FromImage(bmp);
graph.CopyFromScreen(0, 0, 0, 0, bmp.Size);

Następnie jeśli chcesz wyciąć z tego screena ten panel, to podajesz odpowiednie parametry w CopyFromScreen.

Najlepiej jednak jest wykonać rysowanie na bitmapie, przy czym cały czas ustawiając tą bitmapę na tło panela (czy Image pictureBoxa), a następnie po naciśnięciu przycisku po prostu odczytać co się tylko chce z tej bitmapy.

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
0

hehe ;) dwóch proponowało mi dzisiaj "romantyczny wieczór" jak faceci to określają ;p Ale osobiście wolę randkę z komputerem;)
BTW: Co się dzieje z tym scrinem? Robi scrina i koniec? jak go zapisać do pliku, lub chociaż wyświetlić w pictureboxsie???

underTaker
  • Rejestracja: dni
  • Ostatnio: dni
0

Tutaj wypadałoby troszkę podszkolić się z podstaw, bo to jednak są podstawy :) No, ale skoro pytasz - odpowiem. Zapis do pliku to po prostu użycie metody Save z bitmapy, na której rysowaliśmy (tzn bmp, z kodu, który podałem wcześniej), a wyświetlenie na pictureBoxie to podstawienie ów bmp do właściwości Image pictureboxa.

Zawsze, zanim przystąpi się do pisania bardziej skomplikowanych programów powinno się nauczyć ważniejszych zagadnień co do języka, wiadomo - forum jest po to, żeby pytać, ale czasem można też w googlu napisać

Save bitmap to file C#
;)

SI
  • Rejestracja: dni
  • Ostatnio: dni
0

Tak zrobionego screena przechowuje ci bitmapa bmp. Wyświetlić w pictureboxie to nic prostszego:
pictureBox1.Image = bmp;

marta1995
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 155
0

Ok, rozkminiłam już zapis i wyświetlanie tyle że, nie mogę obrazka wykadrować, oblukajcie moja linijkę

Kopiuj
graph.CopyFromScreen(Pole.Location.X, Pole.Location.Y, Pole.Width, Pole.Height, bmp.Size);
 

Gdzie Pole to nazwa obiektu "Panel" z Toolboxa

underTaker
  • Rejestracja: dni
  • Ostatnio: dni
0

Pokombinuj z metodami PointToClient i PointToScreen, służącymi właśnie do kadrowania, poczytaj o nich troszkę. Każda kontrolka (i za razem forma) posiada taką właśnie metodę, która przekształca punkt. Sam do końca nie wiem jak działają, przyznam się szczerze, że używam ich na wyczucie :)

Kod ogólnie jest dobry, tylko uwzględniasz tylko położenie kontrolek na formie, nie uwzględniając położenia samej formy.

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.