Kann ich einen Screenshot als Vektorgrafiken oder mit einer höheren Auflösung als nativ aufnehmen?

32

Ich muss einige Screenshots eines Anwendungsfensters machen. Die Auflösung meines Laptops ist niedrig, und ich möchte Bilder in hoher Qualität erhalten.

Gibt es eine Möglichkeit, den Bildschirm als Vektorgrafiken (z. B. EPS, PDF, SVG) zu erfassen? Gibt es alternativ eine Möglichkeit, einen Screenshot mit höherer Auflösung als den nativen zu erstellen?

Meine native Auflösung ist 1366x768, während ich mindestens eine Auflösung von fast 4000x3000 benötigen würde.

Alfatau
quelle
Ich habe Windows für Ihre Frage angenommen. Bitte editieren und neu markieren, falls dies nicht der Fall ist.
Slhck
> Sie könnten versuchen, sich mit der Skalierung der Benutzeroberfläche zu befassen. Die Gesamtzahl der auf dem Bildschirm gerenderten oder für die Erfassung verfügbaren Pixel wird dadurch nicht geändert.
Synetech,
1
Dies scheint sehr verwirrt. Nehmen wir an, Sie hatten eine 10k x 10k-Anzeige. Wie genau sollte das Anwendungsfenster Ihrer Meinung nach anders aussehen? Sollte es mehr Elemente enthalten, oder soll es mehr Details in denselben Elementen enthalten? Ist es eine native Win32-Anwendung oder ein anderes Toolkit wie Qt, Java oder sogar ein OpenGL- oder DirectX-Fenster?
Eroen
2
Die Idee war anders. Ich weiß, dass ich keine Pixel erstellen kann, die das Display nicht hat. Ich suchte nach einem "virtuellen" Tool zur Verbesserung der Bildschirmauflösung, so dass ich praktisch jede Auflösung einstellen kann. Wenn es höher als die Anzeigefunktionen ist, muss ich den Bildschirm jedes Mal scrollen, wenn nur ein Teil davon angezeigt wird, und in der Lage sein zu drucken Der virtuelle Bildschirm wird angezeigt, anstatt dass die tatsächliche Teilmenge des virtuellen Bildschirms angezeigt wird.
Alfatau

Antworten:

21

Na sicher! Ja, das kannst du. Sie benötigen eine UI-Rendering-Engine mit einem Vektor-Backend. Gtk + 3+ hat dieses Backend. Bitte sehen Sie dieses Projekt:

Sie sollten jedoch wissen, dass die Anwendung unter Linux mit Gtk + ausgeführt werden kann. Möglicherweise können Sie Modelle entweder mit dieser Methode oder mit Microsoft Visio für die Vektorausgabe erstellen.

Siehe diese Beispiele:

Wenn Sie Debian / Ubuntu-Benutzer sind, können Sie dies zur Installation einfach tun

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

Und dann müssen Sie nur noch auswählen, welche Anwendung Sie mit Ihrer Maus aufnehmen möchten. Derzeit sollte die Anwendung ein Gtk + 3 für einen erfolgreichen Vektor-Screenshot sein. Das Ergebnis ist eine PDF-Datei im aktuellen Arbeitsverzeichnis.

Take-Vector-Screenshot-Anwendung

PS: Gute Nachricht: Firefox 42 wird Gtk + 3 verwenden .

Ho1
quelle
1
Nett! Obwohl die Frage mit Windows getaggt ist, ist dies eine sehr nützliche Antwort für zukünftige Besucher, die diese Frage finden.
Arjan
1
Danke, eigentlich stammt dieser Tag nicht von dem, der die Frage gestellt hat. Tatsächlich ist dies ein heikler Prozess, aber mit Metro und Retina ist / wird dies möglicherweise unter Win / Mac möglich. Es verdient eine gute Forschung.
Ho1
@ Ho1, nach einer Online-Suche scheint OS X in der Lage zu sein, PDF-Screenshots zu erfassen
Andrea Lazzarotto
@ AndreaLazzarotto Vielen Dank. Aber ist es ein Vektor? Ich konnte keinen Download-Link finden. Wenn Sie einen Mac haben, können Sie bitte selbst einen PDF-Screenshot erstellen? Wir hatten hier einige Diskussionen über Vektor-Screenshots von Mac, hier: apple.stackexchange.com/a/144596/90089
Ho1
1
Ich kann Screenshots von anderen Programmen machen, aber wenn ich es mit Firefox versuche, wird der Screenshot erstellt, aber der Screenshot ist komplett leer. Arbeiten an Ubuntu Gnome. Das Aufnehmen von Screenshots von Midori oder Chromium funktioniert nicht ohne Fehlermeldung oder Fensteröffnung ...
nnn
10

Erfassen Sie als Vektor? Nein natürlich nicht. Das Erfassungsprogramm kann nichts über die Geometrie der Formen auf dem Bildschirm wissen, ohne sich in die Programme einzuklinken, die die Zeichnung ausführen.

Sie können jedoch ein Rasterbild erfassen und dieses dann in einen Vektor konvertieren . Es gibt Werkzeuge wie Inkscape , die diese Konvertierung durchführen können (obwohl Sie normalerweise einige Anpassungen manuell vornehmen müssen, und selbst dann werden Sie selten in der Lage sein, pixelgenaue Ergebnisse zu erzielen).

Wenn Sie eine Aufnahme durchführen, kann die Auflösung nicht mehr Informationen erfassen, als verfügbar sind. Sie können das resultierende Bild verkleinern und wenn Sie einen guten Skalierungsalgorithmus verwenden, werden die interpolierten Pixel ziemlich gut gemischt, aber es gibt keine Möglichkeit, mehr Pixelinformationen als vorhanden zu erfinden .

Theoretisch könnte es möglich sein, eine Art System zu implementieren, bei dem alles intern mit einer höheren Auflösung gerendert und dann mit einer geringeren Auflösung auf den Bildschirm gesendet wird. Dies würde jedoch eine spezielle Unterstützung sowohl im Betriebssystem als auch im Laufwerk erfordern Es ist unwahrscheinlich, dass es implementiert wird, da es nur sehr begrenzt verwendet wird und in den meisten Szenarien nur eine Verschwendung von Speicher wäre.

Möglicherweise können Sie das Desktop-Panning verwenden , um eine höhere Auflösung des Desktops zu erzielen, als der Bildschirm unterstützt. Dies setzt jedoch voraus, dass Ihre Treiber dies unterstützen.

Synetech
quelle
1
Vorausgesetzt, das Fenster hat eine kleine Farbpalette und ist ziemlich einfach, gibt es en.wikipedia.org/wiki/Pixel_art_scaling_algorithms , die nützlich sein könnten.
Eroen
@ hit-and-run-down-voter, was (wenn überhaupt) ist dein Problem? Andere scheinen die Antwort zu mögen, daher kann ich keine Probleme ansprechen, die Sie möglicherweise damit haben oder nicht, wenn Sie sich nicht die Mühe machen, einen Kommentar zu hinterlassen.
Synetech
1
Sie irren sich - die meisten GUI-Elemente sind außergewöhnlich vektorbasiert, einschließlich Verläufen. Aber - Mainstream-Betriebssysteme und GUI-Frameworks bieten APIs für externe Listener für Screen Grabber, und dies ist ein großes Problem, aber kein bekanntes Capture-Programm unterstützt dies. Sie können beispielsweise einen regulären Windows Inspect-Client verwenden: Er kann alle Ereignisse auf der Benutzeroberfläche erfassen und Sie können ein eigenes Tool erstellen, mit dem diese Ereignisse als Vektor-Screenshot dargestellt werden.
Dmitry Ponyatov
Für echte Vektorerfassungsanwendungen müssen Sie jedoch OCR- und Tracing-Module als Fallback einbinden. Viele Programme verwenden vorberechnete Bitmaps. Dies ist ein weiteres (vom Marketing inspiriertes) großes Problem.
Dmitry Ponyatov
0

Derzeit nicht . Dies sollte aber nicht möglich sein.

Beide sind native Vektor-Benutzeroberflächen, ermöglichen jedoch auch die Verwendung von Bitmaps - dies ist eine hervorragende Anpassung für SVG. Es gibt zwar Tools zum Exportieren von WPF in SVG , die meisten richten sich jedoch an Softwareentwickler. Beispielsweise benötigen Sie die XAML-Quelle Ihrer Anwendung und exportieren diese dann in SVG.

Mikemaccana
quelle
-1

Für UNIX-Benutzer können Sie entweder KSnapShot oder GIMP verwenden. Weitere Details finden Sie in der Grafik

Um KSnapShot zu installieren, können Sie diesen Link KSnapShot verwenden

GIMP ist auch für Windows verfügbar.

Maulik Madhavi
quelle
Dies scheinen nur normale Schnappschuss-Werkzeuge zu sein, über Vektorgrafiken oder eine höhere Auflösung als auf dem Bildschirm wird nichts gesagt. Verstehe ich etwas falsch?
TS