用于截取屏幕截图并保存图像的 Bash 脚本 - Ubuntu

用于截取屏幕截图并保存图像的 Bash 脚本 - Ubuntu

我编写了一个如下的 bash 脚本:

#!/bin/bash
echo "Enter a file name"
read filename
import -window root $HOME/Desktop/$filename.png

我希望该脚本能够截取屏幕截图并使用给定的文件名将图像保存在我的桌面上。

问题:我的 Ubuntu 终端给出错误:

导入:未找到命令

答案1

您需要安装该包图像魔法通过 Ubuntu 软件中心使用导入命令或者:

sudo apt-get install imagemagick

这将允许您使用import命令。还可以尝试graphicsmagick-imagemagick-compat包裹。

其他进口替代方案包括

  • scrot. 使用以下命令安装:

    sudo aptitude install scrot
    

    用法:scrot screen.png

  • gnome-screenshot. 使用以下命令安装:

    sudo aptitude install gnome-screenshot
    

答案2

你可以使用最好的截图工具 快门 安装百叶窗也可用于脚本!我相信,这是最强大的工具,为您提供了最先进和最精细的选项供您在脚本中使用。

使用终端命令安装

sudo apt-get install shutter

或使用软件中心(点击下面的大按钮)

通过软件中心安装

安装完成后,使用此命令截取整个显示屏的屏幕截图,并将屏幕截图保存在名为的文件中,myshot.png

shutter -f -o myshot.png -e
  • 指示-f快门对整个显示屏进行截图。您还可以使用-a它对活动窗口进行截图,或者指示它从任何特定窗口进行截图。

  • -o选项用于告诉快门输出文件名。您可以指定任何文件名

  • e选项会导致快门在截取屏幕截图后退出。


下面给出了输出,shutter --help供参考。

Usage:
    shutter [options]

Options:
    Example 1
            shutter -a -p=myprofile --min_at_startup

    Example 2
            shutter -s=100,100,300,300 -e

    Example 3
            shutter --window=.*firefox.*

    Example 4
            shutter --web=http://shutter-project.org/ -e

  Capture Mode Options:
    -s, --select=[X,Y,WIDTH,HEIGHT]
            Capture an area of the screen. Providing X,Y,WIDTH,HEIGHT is
            optional.

    -f, --full
            Capture the entire screen.

    -w, --window=[NAME_PATTERN]
            Select a window to capture. Providing a NAME_PATTERN (Perl-style
            regex) ist optional.

    -a, --active
            Capture the current active window.

    --section
            Capture a section. You will be able to select any child window
            by moving the mouse over it.

    -m, --menu
            Capture a menu.

    -t, --tooltip
            Capture a tooltip.

    --web=[URL]
            Capture a webpage. Providing an URL ist optional.

    -r, --redo
            Redo last screenshot.

  Settings Options:
    -p, --profile=NAME
            Load a specific profile on startup.

    -o, --output=FILENAME
            Specify a filename to save the screenshot to (overwrites any
            profile-related setting).

            Supported image formats: You can save to any popular image
            format (e.g. jpeg, png, gif, bmp). Additionally it is possible
            to save to pdf, ps or svg.

            Please note: There are several wildcards available, like

             %Y = year
             %m = month
             %d = day
             %T = time
             $w = width
             $h = height
             $name = multi-purpose (e.g. window title)
             $nb_name = like $name but without blanks in resulting strings
             $profile = name of current profile
             $R = random char (e.g. $RRRR = ag4r)
             %NN = counter

            The string is interpretted by strftime. See "man strftime" for
            more examples.

            As an example: shutter -f -e -o './%y-%m-%d_$w_$h.png' would
            create a file named '11-10-28_1280_800.png' in the current
            directory.

  Application Options:
    -h, --help
            Prints a brief help message and exits.

    -v, --version
            Prints version information.

    -d, --debug
            Prints a lot of debugging information to STDOUT.

    --clear_cache
            Clears cache, e.g. installed plugins, at startup.

    --min_at_startup
            Starts Shutter minimized to tray.

    --disable_systray
            Disables systray icon.

    -e, --exit_after_capture
            Exit after the first capture has been made. This is useful when
            using Shutter in scripts.

答案3

要安装包含程序的 imagemagick import,请参阅其他答案。但是,您也可以通过调用从命令行启动 gnome-screenshot gnome-screenshot。小程序将立即截取屏幕截图并显示一个对话框以输入文件名:

在此处输入图片描述

答案4

我喜欢scrot这个(apt install scrot):

 #!/bin/bash

 scrot -u -q 100 '/home/stephen/pic/screenshots/screenshot.%Y%m%d_%H%M%S.png'

并链接到一些密钥。我在使用密钥时遇到了问题printscr,但并没有太在意去调查。

相关内容