Std ViewScreenShot/ja: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 117: Line 117:
}}
}}


{{Std Base navi}}

{{Userdocnavi}}
{{clear}}
{{clear}}

{{Std Base navi{{#translation:}}}} <!--Do not add this line inside of translation tags -->

{{Userdocnavi{{#translation:}}}} <!--Do not add this line inside of translation tags -->

Revision as of 06:28, 19 February 2020

概要

このコマンドは現在の3Dビューの内容をファイルに保存するためのダイアログを開きます。 このダイアログでは様々な画像フォーマットで保存を行うことができます。 さらにパラメーターにアクセスするための"Options"ボタンを使ってスクリーンショットの アスペクト比や解像度を変更することも可能です。

またPNGやJPEGといった一部の画像フォーマットでは画像のコメントフィールドを使用して MIBA情報を画像に付加することも可能です。

Usage

  1. There are several ways to invoke this command:

Result: A dialog will open requesting some parameters

Options

画像フォーマット

FreeCADは画像保存のためにQTに組み込まれた画像タイプとbin/imageformatsディレクトリにある一部のQTプラグインを使用しています。 従って選択できるフォーマットの種類と数はあなたの使用しているプラットフォームに依存します。

ダイアログ

画像サイズ

画像サイズパラメーターはアクティブな3Dビューのスクリーンサイズに設定されますが任意の値に変更することができます。一部のOpenGLのドライバーでは8000ピクセルを超えたレンダリングができないことがあります。これは使用しているシステムによって変わります。

四つのボタンを使用してアスペクトを特定の値に変更することが可能です。

画像の背景

このコンボボックスを使用して作成する画像の背景を選択することが可能です。

  • Current (ユーザー設定で選択されている)現在のビューの背景を使用します
  • White 白一色の背景を作成します(例えば印刷時に使用します)
  • Black 黒一色の背景
  • Transparent 透過色をサポートしている画像フォーマットで透過背景を作成します
Creation method

With this combo box you can set how the image data is collected (rendered):

  • Framebuffer (custom): It uses the same technique as Framebuffer (as is). Additionally it allows to set custom sizes and the background.
  • Framebuffer (as is): If multi-sampling anti-aliasing is off, it reads the image directly from the graphic renderer. If multi-sampling is on, it renders to a framebuffer and gets the image from there. (The key part of this method is Qt's QOpenGLFramebufferObject class.)
  • Offscreen (new): This is the default method. It is a replacement/alternative for the Offscreen (old) rendering. Additionally it supports multi-sampling. (The most important classes are Qt's QOffscreenSurface and QOpenGLFramebufferObject.)
  • Offscreen (old): It only uses functions from the library Coin3d. This method does not support multi-sampling, relies heavily on graphic driver and on many modern Linux systems it does not work. It is a real off-screen rendering method that doesn't require an OpenGL window.

To turn on multi-sampling (anti-aliasing), use the option Anti-Aliasing in the preferences.

Comment

Some image formats can embed a comment in to the picture. In case you choose one of this formats you can insert a comment or use the comment field for the MIBA information.

スクリプト処理

Pythonによってスクリーンを保存することもできます:

Gui.ActiveDocument.ActiveView.saveImage('C:/temp/test.png',1656,783,'Current')

このスクリプトは異なるサイズ、異なる始点で複数の画像を作成します。 カメラのタイプ、つまり正投影か透視投影かを変更することもできます。

import Part,PartGui
# テスト用パーツを読み込み
Part.open("C:/Documents and Settings/jriegel/My Documents/Projects/FreeCAD/data/Blade.stp")
OutDir = 'c:/temp/'

# 異なるビュー、カメラ、サイズで画像を作成
for p in ["PerspectiveCamera","OrthographicCamera"]:
  Gui.SendMsgToActiveView(p)
  for f in ["ViewAxo","ViewFront","ViewTop"]:
    Gui.SendMsgToActiveView(f)
    for x,y in [[500,500],[1000,3000],[3000,1000],[3000,3000],[8000,8000]]:
      Gui.ActiveDocument.ActiveView.saveImage(OutDir + "Blade_" + p +"_" + f + "_" + `x` + "_" + `y` + ".jpg",x,y,"White")
      Gui.ActiveDocument.ActiveView.saveImage(OutDir + "Blade_" + p +"_" + f + "_" + `x` + "_" + `y` + ".png",x,y,"Transparent")

# アクティブなドキュメントを閉じます
App.closeDocument(App.ActiveDocument.Name)
Gui.ActiveDocument.ActiveView.saveImage('C:/temp/test.png',1656,783,'Current')

This script makes a series of pictures of different sizes and from different points of view. The type of the camera, i.e. orthographic or perspective can also be changed.

import Part,PartGui
# loading test part
Part.open("C:/Documents and Settings/jriegel/My Documents/Projects/FreeCAD/data/Blade.stp")
OutDir = 'c:/temp/'
 
# creating images with different Views, Cameras and sizes
for p in ["PerspectiveCamera","OrthographicCamera"]:
    Gui.SendMsgToActiveView(p)
    for f in ["ViewAxo","ViewFront","ViewTop"]:
        Gui.SendMsgToActiveView(f)
        for x,y in [[500,500],[1000,3000],[3000,1000],[3000,3000],[8000,8000]]:
            Gui.ActiveDocument.ActiveView.saveImage(OutDir + "Blade_" + p +"_" + f + "_" + `x` + "_" + `y` + ".jpg",x,y,"White")
            Gui.ActiveDocument.ActiveView.saveImage(OutDir + "Blade_" + p +"_" + f + "_" + `x` + "_" + `y` + ".png",x,y,"Transparent")

# close active document
App.closeDocument(App.ActiveDocument.Name)