web-dev-qa-db-ja.com

スクリーンショットをベクターグラフィックとして、またはネイティブよりも高い解像度で撮ることはできますか?

アプリケーションウィンドウのスクリーンショットを撮る必要があります。ラップトップの解像度が低く、高品質の画像を取得したいと考えています。

画面をベクターグラフィックス(EPS、PDF、SVGなど)として取得する方法はありますか?または、ネイティブのスクリーンショットよりも高い解像度のスクリーンショットを撮る方法はありますか?

私のネイティブ解像度は1366x768ですが、少なくとも4000x3000の解像度が必要です。

33
Alfatau

もちろん!はい、できます。ベクターバックエンドを備えたUIレンダリングエンジンが必要になります。 Gtk + 3+にはそのバックエンドがあります。このプロジェクトをご覧ください:

ただし、アプリケーションはGtk +を使用してLinuxで実行できる必要があることを知っておく必要があります。たぶん、この方法を使用するか、Microsoft Visioを使用してベクトル出力を持つモックアップを作成できます。

次のサンプルをご覧ください。

Debian/Ubuntuユーザーの場合、インストールは簡単に行えます

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

マウスでスクリーンショットを撮りたいアプリケーションを選択するだけです。現在、ベクタースクリーンショットを成功させるには、アプリケーションがGtk + 3である必要があります。結果は、現在の作業ディレクトリ内のPDFファイルになります。

take-vector-screenshot application

PS:朗報:Firefox 42 Gtk + 3を使用します

22
Ho1

Capturevector as?もちろん違います。キャプチャプログラムが描画を行うプログラムに何らかのフックを持たない限り、画面上の形状のジオメトリについて何かを知る方法はありません。

ただし、ラスターイメージをキャプチャしてから それをベクトルに変換する を実行することができます。この変換を実行できる Inkscape のようなツールがあります(ただし、通常は手動で微調整する必要があり、それでもピクセルパーフェクトな結果が得られることはめったにありません)。

解像度に関しては、キャプチャを実行するときに、利用可能な情報より多くの情報をキャプチャすることはできません。結果の画像のサイズを変更できます。適切なスケーリングアルゴリズムを使用すると、 補間 ピクセルはかなりうまくブレンドされますが、発明する方法はありません。 存在するよりも多くのピクセル情報。

理論的には、すべてを内部でより高い解像度でレンダリングし、それを低い解像度で画面に送信するようなシステムを実装することは可能ですが、OSとドライブの両方で特別なサポートが必要であり、使用が非常に限られており、ほとんどのシナリオでメモリの浪費になるだけなので、実装される可能性はほとんどありません。

desktop-panning を使用して、画面がサポートするよりも高い解像度のデスクトップを実現できる場合がありますが、これもドライバーがサポートしている必要があります。

10
Synetech

UNIXユーザーの場合、KSnapShotまたはGIMPを使用できます。詳細は グラフィカル画面 にあります

KSnapShotをインストールするには、次のリンクを使用できます KSnapShot

GIMPはWindowsでも利用できます。

0
Maulik Madhavi

現在はありません。これは可能ですが、不可能です。

どちらもネイティブのベクターUIですが、ビットマップも使用できます-これはSVGに最適です。ただし、 WPFをSVGにエクスポートするツールが存在するNSViewでも同じ )、これらのほとんどはソフトウェア開発者向けです。たとえば、それをSVGにエクスポートするには、アプリケーションのXAMLソースが必要になります。

0
mikemaccana