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