• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie screenshotów

Object Storage Arubacloud
+1 głos
321 wizyt
pytanie zadane 8 września 2017 w C i C++ przez fipooo Bywalec (2,880 p.)
Potrzebuję programu do tworzenia screenshotów. A raczej chciałbym taki napisać. Z tego co wiem jest to możliwe w c++. Jeżeli mógłby ktoś odesłać do pomocnego linku będę wdzięczny.

2 odpowiedzi

+2 głosów
odpowiedź 8 września 2017 przez QizmoPL Stary wyjadacz (11,440 p.)
wybrane 8 września 2017 przez fipooo
komentarz 8 września 2017 przez QizmoPL Stary wyjadacz (11,440 p.)
tylko licz sie z tym, ze to nie bedzie przenosne
0 głosów
odpowiedź 8 września 2017 przez Milesq Nałogowiec (32,020 p.)
W sfml jest to możliwe

tworzysz obiekt klasy sf::Image

i on ma funkcję capture

http://cpp0x.pl/kursy/Kurs-SFML-1-6-C++/Wczytywanie-i-zapisywanie-plikow-graficznych/332
komentarz 8 września 2017 przez fipooo Bywalec (2,880 p.)
A czy jest możliwość dokładnego wyznaczenia wielkości screena i miejsca na ekranie? Czyli np. 200x200 i w przekątna od  (x,y) do (x,y).
komentarz 8 września 2017 przez Knayder Nałogowiec (37,640 p.)
Jeezu, przecież to jest SFML 1.6.

Obecnie mamy 2.4.2 i już tego nie ma.
1
komentarz 8 września 2017 przez Milesq Nałogowiec (32,020 p.)
ta funkcja daje Ci możliwość stworzenia obiektu klasy image  z aktualnym stanem ekranu potem możesz na tym działać jak na zwykłym obrazie zapisanie go do pliku to tylko jedna możliwość

polecam dokumentację :)

https://www.sfml-dev.org/documentation/2.4.2/classsf_1_1Image.php

klasa image
komentarz 8 września 2017 przez niezalogowany

W SFML 2.4.2 capture jest oznaczony jako depreceated. Nie powinno go się stosować, bo jak napisano w dokumentacji:

This is a slow operation, whose main purpose is to make screenshots of the application. If you want to update an image with the contents of the window and then use it for drawing, you should rather use a sf::Texture and its update(Window&) function. You can also draw things directly to a texture with the sf::RenderTexture class.

Raczej powinno robić się to tak link i kod:

#include <SFML/Graphics.hpp>
#include <thread>

int main()
{
	sf::RenderWindow window({ 800, 600 }, "Screenshot!");
	sf::Texture tex;
	tex.create(800, 600);
	while (window.isOpen())
	{
		sf::Event event;
		while (window.pollEvent(event))
		{
			if (event.type == sf::Event::Closed)
				window.close();
			if (event.type == sf::Event::KeyPressed)
			{
				tex.update(window);
				sf::Image img = tex.copyToImage();
				std::thread t([img]() {
					img.saveToFile("test.png");
				});
				t.detach();
			}
		}
		window.clear(sf::Color(0xFF0000FF));
		window.display();
	}
}

A czy jest możliwość dokładnego wyznaczenia wielkości screena i miejsca na ekranie? Czyli np. 200x200 i w przekątna od  (x,y) do (x,y).

Wszystko jest wiadome. Wystarczy użyć odpowiedniej funkcji

Podobne pytania

0 głosów
1 odpowiedź 121 wizyt
pytanie zadane 5 grudnia 2018 w Systemy operacyjne, programy przez Musa_dagh Nowicjusz (150 p.)

92,554 zapytań

141,399 odpowiedzi

319,535 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...