Czy mogę zrobić zrzut ekranu jako grafikę wektorową lub w wyższej rozdzielczości niż natywna?

32

Muszę zrobić zrzuty ekranu okna aplikacji. Moja rozdzielczość laptopa jest niska i chciałbym uzyskać obrazy wysokiej jakości.

Czy istnieje sposób na przechwycenie ekranu jako grafiki wektorowej (np. EPS, PDF, SVG)? Alternatywnie, czy jest sposób na zrobienie zrzutu ekranu o wyższej rozdzielczości niż natywna?

Moja natywna rozdzielczość to 1366 x 768, a potrzebuję co najmniej rozdzielczości prawie 4000 x 3000.

Alfatau
źródło
Przyjąłem Windows za twoje pytanie. Proszę edytować i zmieniać tagów jeśli to nie jest przypadek.
slhck,
> Możesz spróbować przyjrzeć się skalowaniu interfejsu użytkownika. Nie zmienia to całkowitej liczby pikseli renderowanych na ekranie lub dostępnych do przechwycenia.
Synetech,
1
To wydaje się bardzo zdezorientowane. Powiedzmy, że miałeś ekran 10k na 10k; jak twoim zdaniem okno aplikacji powinno wyglądać inaczej? Czy powinien zawierać więcej elementów, czy też powinien zawierać więcej szczegółów w tych samych elementach? Czy jest to natywna aplikacja Win32 lub jakiś inny zestaw narzędzi, taki jak Qt, Java, a nawet okno OpenGL lub DirectX?
Eroen
2
Pomysł był inny. Wiem, że nie mogę tworzyć pikseli, których nie ma wyświetlacz. Szukałem „wirtualnego” narzędzia do zwiększania rozdzielczości ekranu, takiego, że mogę wirtualnie ustawić dowolną rozdzielczość, a jeśli jest ona wyższa niż możliwości wyświetlania, będę musiał przewijać ekran za każdym razem tylko jego podzbiór i móc drukować wirtualny ekran do obrazu zamiast oglądanego rzeczywistego podzbioru ekranu wirtualnego.
Alfatau,

Odpowiedzi:

21

Oczywiście! Tak, możesz to zrobić. Potrzebny będzie silnik renderowania interfejsu użytkownika z zapleczem wektorowym. Gtk + 3+ ma ten backend. Zobacz ten projekt:

Ale powinieneś wiedzieć, że aplikacja powinna być w stanie działać w systemie Linux za pomocą Gtk +. Być może możesz utworzyć makiety za pomocą tej metody lub za pomocą programu Microsoft Visio w celu uzyskania wyjściowego wektora.

Zobacz te próbki:

Jeśli jesteś użytkownikiem Debiana / Ubuntu, do instalacji możesz po prostu zrobić

$ sudo apt-get install gtk-vector-screenshot
$ take-vector-screenshot

A następnie musisz tylko wybrać aplikację, którą chcesz zrobić zrzut ekranu za pomocą myszy. Obecnie aplikacja powinna być Gtk + 3 dla udanego zrzutu ekranu wektorowego. Rezultatem będzie plik PDF w bieżącym katalogu roboczym.

aplikacja do robienia zrzutów wektorów

PS: Dobra wiadomość: Firefox 42 będzie korzystał z Gtk + 3 .

Ho1
źródło
1
Miły! Chociaż pytanie jest oznaczone jako Windows, jest to nadal bardzo przydatna odpowiedź dla przyszłych użytkowników, którzy znajdą to pytanie.
Arjan
1
Dzięki, tak naprawdę ten tag nie pochodzi od faceta, który zadał pytanie. W rzeczywistości jest to jakoś trudny proces, ale w przypadku Metra i Retiny może to być / będzie możliwe na Win / Mac. Zasługuje na dobre badania.
Ho1
@ Ho1, z wyszukiwania online wydaje się, że OS X jest w stanie uzyskać zrzuty ekranu w formacie PDF: idownloadblog.com/2014/07/31/…
Andrea Lazzarotto
@AndreaLazzarotto Thanks. Ale czy to wektor? Nie mogłem znaleźć linku do pobrania. Jeśli masz komputer Mac, możesz samodzielnie utworzyć zrzut ekranu PDF? Rozmawialiśmy tutaj o zrzutach ekranu z komputerów Mac, tutaj: apple.stackexchange.com/a/144596/90089
Ho1
1
Mogę robić zrzuty ekranu z innych programów, ale jeśli wypróbuję to w Firefoksie, zrobię zrzut ekranu, ale zrzut ekranu jest całkowicie pusty. Praca na Ubuntu Gnome. Robienie zrzutów ekranu Midori lub Chromium nie działa bez żadnego komunikatu o błędzie lub otwarcia okna ...
nnn
10

Przechwytywanie jako wektor? Nie, oczywiście nie. Program przechwytujący nie ma możliwości dowiedzenia się o geometrii kształtów na ekranie bez pewnego zaczepienia się w programie lub programach wykonujących rysunek.

Możesz jednak przechwycić obraz rastrowy, a następnie przekonwertować go na wektor . Istnieją narzędzia takie jak Inkscape, które mogą wykonać tę konwersję (chociaż zwykle będziesz musiał ręcznie zmodyfikować, a nawet wtedy rzadko będziesz w stanie uzyskać doskonałe wyniki w pikselach).

Jeśli chodzi o rozdzielczość, podczas przechwytywania nie można przechwycić więcej informacji niż jest dostępna. Możesz zmienić rozmiar powstałego obrazu, a jeśli użyjesz dobrego algorytmu skalowania, interpolowane piksele będą mieszać się dość dobrze, ale nie ma sposobu, aby wynaleźć więcej informacji o pikselach niż jest obecnych.

Teoretycznie możliwe byłoby wdrożenie jakiegoś systemu, w którym wszystko jest renderowane wewnętrznie w wyższej rozdzielczości, a następnie wysyłane na ekran w mniejszym, ale wymagałoby to specjalnego wsparcia zarówno w systemie operacyjnym, jak i na dysku, i jest jest mało prawdopodobne, aby zostać wdrożonym, ponieważ ma bardzo ograniczone zastosowanie i byłoby marnowaniem pamięci w większości scenariuszy.

Możliwe jest użycie przesuwania pulpitu w celu uzyskania pulpitu o wyższej rozdzielczości niż obsługuje ekran, ale znowu wymaga to obsługi sterowników.

Synetech
źródło
1
Zakładając, że okno ma małą paletę kolorów i jest dość proste, istnieją en.wikipedia.org/wiki/Pixel_art_scaling_algorithms .
Eroen
@ głosujący na wybicie, co (jeśli cokolwiek) jest twoim problemem? Inni wydają się lubić odpowiedź, więc nie mogę rozwiązać żadnych problemów, które możesz mieć lub nie, jeśli nie zawracasz sobie głowy pozostawieniem komentarza.
Synetech
1
Mylisz się - większość elementów GUI jest wyjątkowo oparta na wektorach, w tym na gradientach. Ale - główne systemy operacyjne i frameworki GUI zapewniają interfejs API zewnętrznych nasłuchiwaczy dla programów do przechwytywania ekranu i jest to duży problem, ale żadne znane programy przechwytujące nie obsługują tego. Na przykład możesz spojrzeć na zwykłego klienta Windows Inspect: może on przechwytywać wszystkie zdarzenia interfejsu użytkownika i możesz stworzyć własne narzędzie, które przekształci te zdarzenia w zrzut ekranu wektorowego.
Dmitrij Ponyatov
Ale w przypadku aplikacji do przechwytywania prawdziwych wektorów musisz uwzględnić OCR i moduły śledzące jako rezerwowe - wiele programów używa wstępnie obliczonych bitmap, a to kolejny (inspirowany marketingiem) duży problem.
Dmitrij Ponyatov
0

Nie obecnie . To powinno być możliwe, ale nie jest.

Oba są interfejsami wektorów natywnych, ale umożliwiają także używanie map bitowych - jest to doskonałe dopasowanie do SVG. Chociaż istnieją narzędzia do eksportowania WPF do SVG , większość z nich jest skierowana do twórców oprogramowania. Na przykład potrzebujesz źródła XAML aplikacji, a następnie wyeksportuj je do SVG.

mikemaccana
źródło
-1

Użytkownicy systemu UNIX mogą korzystać z KSnapShot lub GIMP. Więcej szczegółów podano na ekranie graficznym

Aby zainstalować KSnapShot, możesz użyć tego linku KSnapShot

GIMP jest również dostępny dla systemu Windows.

Maulik Madhavi
źródło
Wydają się być zwykłymi narzędziami do robienia migawek, nic nie mówi o grafice wektorowej lub rozdzielczości wyższej niż na ekranie. Czy coś jest nie tak?
TS