Скриншоты в Linux, или как сделать снимок экрана

Скриншоты - это как показы высокой моды:
всё красиво и вычурно, но по улице в таком не ходят.
(с) глас народа из раздела Галереи на ЛОРе

Как-то раз мне задал вопрос один новоиспечённый убунтовец: как в Linux сделать скриншот в иксах (screenshot, снимок рабочей области)? А то тут кнопка PrnScr/SysRq не работает..." Естественно, ему было рассказано про истинное назначение кнопки SysRQ, но вопрос остался: чем скриншоты в Linux делать!? Как и многое другое в Linux, это имеет 1001 решение.

The Gimp
В арсенале богатого возможностями GIMP есть и функция захвата окна: Файл -> Захватить -> Снимок экрана. Удобно, так как сразу можно подредактировать изображение. Естественно, сохранение изображений в любой мыслимый, несколько непостижимых (KISS CEL) и один невероятный формат (исходный код С).


Здесь можно захватить либо весь экран (можно выставить задержку по времени), либо одно окно.

Shutter
Небольшая программа shutter умеет не только снимать скриншоты указанных окон, частей окон, всего экрана, но и применять различные эффекты к снятым изображениям и даже расставлять стрелки.

Сайт программы http://shutter-project.org/.



KSnapshot
Программа для снятия скриншотов из комплекта KDE отлично делает скриншоты экрана целиком, части, окна и тп.
Кстати, на данной картинке показан KSnapshot, снимающий сам себя.

gnome-screenshot
Программа по умолчанию в среде GNOME для снятия скриншотов.
Если использовать команду:
gnome-screenshot --interactive
можно настроить параметры снятия скриншота, например задержку перед снятием скриншота.


screengrab-qt
Небольшой, но быстрый и не тянущий за собой пол-KDE велосипед для скриншотов с круглыми колёсиками screengrab-qt, который выглядит вот так:


Из возможностей можно отметить возможность скриншотить полный экран, окно или область, сохранение в PNG\JPG, установку задержки и возможность повесить на горячую клавишу. Сайт программы здесь, где можно скачать и виндовый экзешник, и убунтушный deb-пакетик. Спасибо тов. shurutov за наводку.


xfce4-screenshooter
Даже маленькая и скромная графическая среда XFCe имеет свою утилиту для снятия скриншотов: xfce4-screenshooter. Тоже умеет снимать экран, окно, область, и выставлять задержку.

Выглядит скромно и функционально.


ImageMagic
Скриншоты можно делать и консольными программами, например ImageMagic. Для этого в иксовом терминале пишем:
import MyScreenshot.png

При этом появится перекрестье и, ткнув им в нужное окно, имеем скриншот в файле MyScreenshot.png.

Чтобы сделать скриншот с задержкой (например, нужно открыть меню), пишем:
sleep 10; import -window root MyScreenshot2.png
Здесь мы получим задержку в 10 секунд и захватим не одно окно, а весь экран в файл MyScreenshot2.png.

xwd
Ещё одна консольная утилита по скриншотостроительству, работающая в духе духа духовных предков UNIX:

xwd > screen.xwd

Далее пользуем силу ImageMagic для конвертирования:

convert screen.xwd screen.png

Можно снять весь экран, указав ключ -root если надо.


Wink

Это в общем не совсем программа для скриншотов, но для создания обучающих роликов.

Однако она тоже умеет делать скриншоты в Linux.


scrot (SCReen shOT)
Утилита командной строки с большими возможностями по скриншотостроительству. Базовый синтаксис:
scrot desktop.png
сделает снимок экрана и положит его в descktop.png. Умеет вещи и посложнее, например снимать с задержкой:
scrot -cd 5 countdown.png
с ключом выведет на экран обратный отсчёт. Сразу можно выставить качество изображения при снятии скриншота:
scrot -q 70 quality.png
Чтобы снять область экрана, пишем:
scrot -s file.png
при клике мышкой делается скриншот окна, на которое вы нажали, и если зажать кнопку, то можно выделить область (спасибо тов. Imposeren). Эти и другие опции можно найти в разных интересных статьях.

Ну и наконец
Ъ™ UNIX® way
Для самых тру юниксвеистых орлов, с помощью Vim/Emacs создаём скрипт следующего содержания:
#!/bin/bash
#usage name_script delay_second
if [ $1 ]; then
sleep $1
fi
FILE_NAME="screenshot";
IMG_FORMAT="jpg"; #png, jpg, bmp, gif, tiff
xwd -screen -root > $FILE_NAME.xwd;
convert $FILE_NAME.xwd -type TrueColor $FILE_NAME.$IMG_FORMAT;
rm $FILE_NAME.xwd;
Запуск скрипта даёт скриншот screenshot.jpg. Реализация пренадлежит бессмертному перу тов. kraftello, за что ему огромное спасибо.


Ссылки в тему:
Темой скриншотов в Linux озадачивались в разных интернетах и кое-что смогли раскопать, так что автор этих строк тоже духовно обогатился. Буду благодарен за другие идеи.

26 комментариев: |высказаться!| RSS-лента дискуссии.|
imhology комментирует...

Вообще-то в Убунтейском Гноме клавиша "Print Screen/SysRq" делает скриншоты, по умолчанию там подвешен gnome-screenshot, а gnome-screenshot --interactive дает опции достаточные для скриншотов, например задержку...

Von комментирует...

Ещё есть scrot. Очень удобный консольный инструмент. :)
Когда разворачивал статью в ридере, думал, про него.

imposeren комментирует...

Да-да-да! scrot молодец! Еще он умеет именовать файлы по маске (с датой, номером, временем и т.п.). Делать скриншоты с задержкой, отображать обратный отсчёт при использовании задержки, применять комманду на сделанную картинку, делать сники конкретного окна, или прямоугольной области

triklozoid комментирует...

Я использую xfce4-screenshooter. Тоже умеет экран, окно, область, задержку, вроде хватает. В .icewm/key дописал
key "Print" xfce4-screenshooter
и он замечательно запускается по кнопке PrintScreen.

virens комментирует...

@paulus комментирует...
Вообще-то в Убунтейском Гноме клавиша "Print Screen/SysRq" делает скриншоты
Шут его знает, но у него почему-то не работала. Вот меня и спросили.

gnome-screenshot --interactive
Спасибо, добавил в пост.

@Von комментирует...
Ещё есть scrot. Очень удобный консольный инструмент.
Добавлено. Спасибо, я про него не знал :-)

@Ярослав Клюев комментирует...
scrot молодец!
Это точно. Я просто в консоли всегда снимал скриншоты imagemagick-ом.

делать сники конкретного окна, или прямоугольной области
Ого, вот про прямоугольную область можно подробнее?

Спасибо уважаемым комментаторам за ценные сведения. Вот что значит обзор писать: обязательно его дополнят :-)

Пашко комментирует...

В Lubuntu работает Print screen и кидет скриншот в home

su6s комментирует...

К духу духа духовных предков UNIX все-таки ближе нечто такое:
xwd -root | xwdtopnm | pnmtopng > $@

кст, почему-то не получается комментировать, используя OpenID

Страшилка комментирует...

есть еще clip2net :)

Gregory комментирует...

Кстати, на данной картинке показан KscreenShot
всё таки, наверное, ksnapshot

virens комментирует...

@Пашко комментирует...
В Lubuntu работает Print screen и кидет скриншот в home
Верю, но в том конкретном случае не работало. Ну и потом, этот пост ведь не про убунту.

@su6s комментирует...
К духу духа духовных предков UNIX все-таки ближе нечто такое
Ну это совсем злобный юниксвей. :-)

кст, почему-то не получается комментировать, используя OpenID
У меня, кстати, блоггеровский OpenID тоже никто не принимает. Симметрия.

@Страшилка комментирует...
есть еще clip2net :)
---> beta... 10.1 Mb (!).
Ох шит! :-)) Оно ещё и бинарное! Нет пути.
Но за ссылку спасибо всё равно.

@Gregory комментирует...
всё таки, наверное, ksnapshot
Точно, позор на мою лысую голову. Пофiксiв.

imposeren комментирует...

Отвечу про скрот окна и области.
scrot -s file.png
при клике мышкой — делается скрин окна на которые вы нажали, если зажать кнопку, то можно выделить область. Правда у меня получались изображение всё-равно размером с весь экран, но то что не было выбрано было цвета (#000000 с НЕпрозрачностью 00)

Страшилка комментирует...

@virens написан на питоне, как сказал прогер бинарник было проще всего сделать для наибольшего охвата семейства линуксовых
то что бетка - не страшно, она почти готова, за исключением того что не сохраняет путь к фолдеру в который был сохранен предыдущий скриншот, но это мелочь ...
PS. не за что :)

Страшилка комментирует...

кстати в добавление к Shutter, один из плюсов: он умеет делать скриншот страницы по указанному URL-у не открывая браузер))) ну и еще писать сделанные скрины на диск, постить в empathy, e-mail (если использовать почтовую программу), писать на CD/DVD, передавать по Bluetooth (OBEX Push), и сохранять на съемные носители, при этом может (по желанию пользователя, естественно) все это дело заархивировать :)

Анонимный комментирует...

#!/bin/bash
#usage name_script delay_second
if [ $1 ]; then
sleep $1
fi
FILE_NAME="screenshot";
IMG_FORMAT="jpg"; #png, jpg, bmp, gif, tiff
xwd -screen -root > $FILE_NAME.xwd;
convert $FILE_NAME.xwd -type TrueColor $FILE_NAME.$IMG_FORMAT;
rm $FILE_NAME.xwd;

ulitkus комментирует...

KSnapshot - наше всё. Ещё был бы такой же выбор программ для скринкаста...

Анонимный комментирует...

Живет у меня уже давненько прибамбас gkrell в правой части экрана,
так вот для него есть #apt-get install gkrellshoot и потом настраиваем его в gkrell и появляется кнопочка "Shoot" позволяющая в зависимости от настроек захватить или весь экран или только указанное окошко.

OffTopic:
Но кроме этого меня заинтересовал еще вопрос настройки разрешения и обновления в Debian на который я пока не смог ответить. Вчера мучался, правил xorg.conf но не помогало пока наконец не попал в Система->Параметры->Разрешение экрана и не выбрал то что направил а ведь перед этим правил из консоли и тупо жмал Ctrl-Alt-Backspace в Login-е GDM надеясь что после перезагрузки X получу желаемое. Хотел на эту тему поконтачить с автором блога (и на эту тему можно было записку накропать) но увы контактов с ходу тут не нашел, потому развожу оффтопик - вдруг да будет читан. Пока непонятна идеология того что где и как влияет на разрешение и цастоту экрана и где хранятся настройки. Откуда берется разрешение и частота для логин скрина, у каждого из пользователей оно одинаковое или такое что выставил один из них? (пока не проверил) или у каждого то что он поставил себе?

P.S. Решительно не понимаю как подписаться на этой страничке, потому посылаю как аноним.

Страшилка комментирует...

2 Анонимный: либо используя аккаунт из того что предлагает выпадушка
http://clip2net.com/clip/m26727/1282220433-clip-23kb.jpg
либо так как сейчас есть
а gkrell позволяет постить на удаленный сервер скрины?

Malky комментирует...

А у меня периодически возникает потребность снять скриншот окна активного приложения с открытым меню. PrtScr обычно не срабатывает в этих случаях. Есть возможность как-то это сделать?

virens комментирует...

@Imposeren комментирует...
Отвечу про скрот окна и области.
Спасибо. Заодно в пост добавил.

@Страшилка комментирует...
@virens написан на питоне
Неправда, виренс написан на чистом ANSI C :-)

то что бетка - не страшно, она почти готова
Ждём релиза!

@Страшилка комментирует...
кстати в добавление к Shutter, один из плюсов: он умеет делать скриншот страницы по указанному URL-у не открывая браузер
Обалдеть. А я про него ничего не слышал. Всё гимпом делал. Вот она, сила комментаторская!

ну и еще писать сделанные скрины на диск, постить в empathy, e-mail (если использовать почтовую программу), писать на CD/DVD, передавать по Bluetooth (OBEX Push)
/me тихо уполз под стул от таких возможностей. Ну ничего ж себе...

@kraftello комментирует...
Круто. Вставил в пост. Спасибо!

@Антон комментирует...
KSnapshot - наше всё
А как же гимп?

Но кроме этого меня заинтересовал еще вопрос настройки разрешения и обновления в Debian
У меня самый свежак - это Ленни. На старом ноуте до сих пор Etch. Так что в вопросах нового софта я как бы не очень в курсе :-))

Хотел на эту тему поконтачить с автором блога (и на эту тему можно было записку накропать)
Поконтачить можно. Добавил кнопку в главном меню (сверху блога). Но это не кнопка экстренного вызова автора :-)

Меня тут мой шеф обрадовал: а давай, говорит, Майкл, ты пройдёшь курс по теории управления. Ну и зачислил меня на него. Так что я теперь хожу на лекции и должен буду сдавать экзамены в Ноябре. Курс продвинутый, а я теорию управления не изучал никогда. Так что мне за месяц (до первого Quiz) надо пройти курс почти за год.

Это к вопросу "поконтачить" и "записку написать" :-)

Пока непонятна идеология того что где и как влияет на разрешение и цастоту экрана и где хранятся настройки.
Они должны быть в xorg.conf, и если какой-то #$@%@ из разработчиков иксов сделает всю настройку через этот грёбаный HAL, я лично к нему приеду с юбилейным паяльником и подробно растолкую ему о том, что это очень нехорошо делать :-)

P.S. Решительно не понимаю как подписаться на этой страничке, потому посылаю как аноним.
Не рубите cookies и javascript, они нужны для подписи. Но анонимные комменты принимаются. Только виагру не предлагайте. :-)

@Malky комментирует...
А у меня периодически возникает потребность снять скриншот окна активного приложения с открытым меню.
Я делаю так: запускаю гимп, прошу его сделать скриншот и выставляю задержку побольше (секунд 10). Потом быстро открываю нужное меню, пока из гимпа не вылетела птичка. Костыль, но он работает :-)

Unknown комментирует...

Т.к. сей программ планируется повесить на горячие клавиши, то консольные отвалились по определению. Остановился на screengrab, тем более он ничего дополнительного за собой не потянул. Но у меня gentoo, как оно в дебиане называется, я не знаю, уж не взыщите.
Домашняя страничка: http://code.google.com/p/screengrab-qt/

Анонимный комментирует...

Я делаю скриншоты с помощью программки ScreenshotMaker. Удобно и просто) давно уже ей пользуюсь и всем советую) Если что, заходите, это сайт программы: http://fastosoft.ru/, там и скачать можно)

virens комментирует...

@shurutov комментирует...
Остановился на screengrab, тем более он ничего дополнительного за собой не потянул.
Ещё один велосипед в моей коллекции. Спасибо!

@Анонимный комментирует...
Я делаю скриншоты с помощью программки ScreenshotMaker.
Анонимус, спасибо, конечно, что зашёл и поделился, но блог таки о Дебиан ГНУ/ЛИНУПС. :-) А то для винды, которая не гну и не тру. Да ещё "профешнл вершн бай нау". Некомильфо. Но так и быть.

Анонимный комментирует...

А есть какая-нибудь программа для снятия скриншота действующего окна с прокруткой,то есть чтобы сохранить все содержимое окна,а не только то,что видно в момент съемки?

alfated комментирует...

народ, кто знает, как отключить ksnapshot с клавиши prtsc? очень неудобно находится.постойнно попадаю по ней. alfatedg@gmail.com

goglus комментирует...

может кому пригодится
scrot -s '%Y-%m-%d-%H-%M-%S_$wx$h.png' -e 'mv $f ~/screen/' участок, с именем — датой, в папку

Анонимный комментирует...

а как сделать скриншот выделенной области с прокруткой?

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.