Bildschirmfotos anfertigen

siehe auch Screencasts: http://linuxwiki.de/ScreenCast

vom Desktop (X11-Oberfläche, Fenstermanager, KDE, etc.)

als Bilderserie oder gleich als Film

automatisch von X-Anwendungen

Mithilfe von ImageMagick und Xvfb (X11 virtual Frame Buffer) kann man "automatisch" Bilder von Anwendungen machen. Das folgende Skript erstellt zum Beispiel einen Screenshot von einer Webseite (vgl. auch http://www.boutell.com/webthumb/).

# A script to take screenshots of webpages.
#
# Example usage: webthumb.sh << END
# http://www.mozilla.org        mozilla.png       mozilla_thmb.png
# http://www.imagemagick.org    imagemagick.png   imagemagick_thmb.png
# END
#
# Requires:
#       * ImageMagick
#       * Mozilla
#       * Xvfb
#
# Author: Henryk Gerlach (2005-01-01)
# No warranty, use at own risk.
# This script is Public Domain. All the hard work is done third party software anyway.

#BUGS:
# Mozilla:
#       * -geometry does not work with mozilla
#       * if mozilla already runs under the userid it might not start up.
#       * if mozilla needs to be configured for the userid running it, the script won't work


BROWSER=mozilla  

#The window title of the browser after startup, so we can grab it's window id.
#If all fails, take root to grab the whole desktop
BROWSERID="Mozilla"
#BROWSERID="root"

DISPLAY=":1"
#Use virtual X server
VIRTUAL_X="Xvfb $DISPLAY"

#cut of browser decoration for 800x600 resolution
CROP="800x490+0+90"
THUMBSIZE="240x180"

INITTIME=5 #time to wait for the Xserver and the browser to start up
LOADTIME=4 #time to wait for a page to load, take shot after this time

######################################################

#init
if test "$VIRTUAL_X" != ""; then
        $VIRTUAL_X &
fi
export DISPLAY
sleep $INITTIME
$BROWSER & 
sleep $INITTIME
if test "$BROWSERID" != "root"; then
        BROWSERID=`xwininfo -name "$BROWSERID" | grep "Window id" | cut -d " " -f 4`
fi

# loop
while read URL BIG THUMB; do
        $BROWSER -remote "openurl($URL)"
        sleep  $LOADTIME
        import -window "$BROWSERID" $BIG
        if test "$CROP" != ""; then
                mogrify -crop $CROP "$BIG"
        fi
        convert -size "$THUMBSIZE" "$BIG" -resize "$THUMBSIZE" "$THUMB"
done

#cleanup
#this is dirty
if test "$VIRTUAL_X" != ""; then
        killall Xvfb
else
        killall $BROWSER
fi

Frage: Stellt jemand sowas auch als Web-Anwendung zur Verfügung, so nach dem Motto: gewünschte URL eingeben und gewünschte Bildgröße und fertig?

von der Textkonsole

per xwd und ImageMagic

xwd -root | convert - screenshot.png

mit Hilfe des Befehls '''script'''

mit Hilfe der Geräte-Dateien

Einfachste Möglichkeit (braucht aber Zugriff auf die /dev/vcs* Gerätedateien, und das hat meist nur `root'):

Die Terminals werden durch Gerätedateien dargestellt. Insbesondere werden die ALT-F1 bis ALT-Fn (n=2..63) Terminals durch die Geräte /dev/vcs(a)1' ... /dev/vcs(a)63' dargestellt. Dabei steht das a für mit Steuerzeichen (d.h. Farbe, Cursorpositionierung, etc). Ein simples

schiebt den Bildschirminhalt von der Konsole in eine Datei. Lesen kann man diese Datei dann mit einem Editor, oder; wenn Sonderzeichen drin vorkommen, sich auch wieder vom Terminal interpretieren lassen:

Eventuell mußt Du einen Zeichensatz laden, der die Rahmenzeichen o.ä. auch beinhaltet, z.B. `lat1u-??'. Genaueres steht auch in Documentation/unicode.txt.

mit gpm

Etwas komplizierter, geht aber mit jedem User:

  1. Der gpm muß laufen (d.h. Maus im Textmodus funktioniert).

  2. Bau dir dein Terminal so, wie du es fotografiert haben willst.
  3. Markiere mit der linken Maustaste den zu fotografierenden Bereich.
  4. Wechsle auf ein beliebiges anderes Terminal, logge dich ein, starte einen Editor.
  5. Füge den kopierten Kram mit der mittleren Maustaste in den Editor ein.

    Eventuell musst Du beim Editor den Indent mode abschalten, sonst gibts nen Treppeneffekt. Bei VI geht das mit :set paste am Anfang und set nopaste am Ende.

BildschirmFoto (zuletzt geändert am 2008-08-18 08:29:15 durch JoernBruns)