Print scren konkretnego obiektu

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ł?

0

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

1

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

0

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

0

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

0

juz obojetnie, potem dostosuje do swoich potrzeb

0

a co oczekujesz w zamian?

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.

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

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.

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???

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#
;)

0

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

0

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

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

Gdzie Pole to nazwa obiektu "Panel" z Toolboxa

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1