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ł?
nie lepiej, ponieważ zależy mi tylko na rysunku który narysuje, nie potrzebne mi na scrinie butony i inne...
Rysuj po Image
, który jest właściwością PictureBox
. W ten sposób o wiele prościej odzyskasz ten bufor.
no a jak tego dokonać? tzn jak zrobic tego print screna?
tylko jak wykonać nawet normalnego print screna bo tego przykłądu z msdn nie rozumiem;/
juz obojetnie, potem dostosuje do swoich potrzeb
a co oczekujesz w zamian?
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.
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.
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???
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#
;)
Tak zrobionego screena przechowuje ci bitmapa bmp
. Wyświetlić w pictureboxie to nic prostszego:
pictureBox1.Image = bmp;
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
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.