anonymous@RULINUX.NET~# Last login: 2024-12-23 03:37:20
Регистрация Вход Новости | Разметка | Пользователи | Галерея | Форум | Статьи | Неподтвержденное | Трекер | Правила форума | F.A.Q. | Ссылки | Поиск
[#] [Добавить метку] [Редактировать]
Скрыть

Imager-Screenshot-0.009

Обновился очередной модуль для снятия скриншотов с экрана. По display name и window id (see man 7 X) выбирает активное (или нет) приложение и делает его снимок. Ниже приведен небольшой perl-script, позволяющий с консоли по названию приложения, высвечивающегося как правило в левом верхнем углу любого графического приложения, сделать его скриншот.

\cut{Читать далее}

perl
#!/usr/bin/perl -w

use Imager::Screenshot 'screenshot';
use strict;
my $id_by_name;
&def_id_by_name();
my $img = screenshot(display => '0', id => $id_by_name ) || print Imager->errstr;
$img->write(file=>"screen.ppm") || print $img->errstr;

sub def_id_by_name{
  my @m = split /\n/ => qx[xwininfo -root -children -all];
  foreach(@m){
    do{
      my $t1 = qx[xwininfo -id $1];
      do{
        $id_by_name = hex($1) if $t1=~m/(\dx([\d\w]){4,})\s/;
      }if $t1=~m/$ARGV[0]/is;
    } if m/(\dx([\d\w]){4,})\s/;
  }
}
 

Запускать так:

  1.  [vilfred@localhost devel]$ perl x.pl bash
  2.  screen.ppm
  3.  [vilfred@localhost devel]$ ls screen.ppm
  4.  screen.ppm
  5.  [vilfred@localhost devel]$
  6.  

и в файле screen.ppm находится скриншот окна, в заголовке которого XWindow написал bash


>>> Подробнее

vilfred(*) (2010-06-30 16:01:00)


Подтверждено: vilfred(*) (2010-06-30 16:01:11)

[Ответить на это сообщение]

[#] [Добавить метку] [Редактировать] Ответ на: Imager-Screenshot-0.009 от vilfred 2010-06-30 16:01:00
avatar
Скрыть

Re: Imager-Screenshot-0.009

Ах вот ты почему спрашивал! Вот это я понимаю подход - протестировал новость, потом запостил. Не то что некоторые.

HEBECTb_KTO(*)(2010-06-30 16:04:56)

[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от HEBECTb_KTO 2010-06-30 16:04:56
avatar
Скрыть

Re: Imager-Screenshot-0.009

угу, именно по этому =)

у меня в упор не желают дрова для одного устройства видеозахвата ставиться, и потому я его будут так мониторить, через запуск xawtv(в нем оно работает) и снимать картинки...

а шнягу эту можно использовать для чего угодно, из под вайна запускать любые майкрософтовые проги или из под dosemu или dosbox

vilfred(*)(2010-06-30 16:10:30)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100622 Namoroka/3.6.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от vilfred 2010-06-30 16:10:30
avatar
Скрыть

Re: Imager-Screenshot-0.009

Оно же вроде через video4linux работает, другие толжны уметь..

Если у тебя это для мониторинга используется, может лучше использовать что-нить специализированное:  http://www.lavrsen.dk/twiki/bin/view/Motion/WebHome

HEBECTb_KTO(*)(2010-06-30 16:34:06)

[#] [Добавить метку] [Редактировать] Ответ на: Imager-Screenshot-0.009 от vilfred 2010-06-30 16:01:00
avatar
Скрыть

Re: Imager-Screenshot-0.009

А если будет два баша? Или десятка два xterm-ов? А если окно находится полностью под другими (вроде как Х-ы не должны его прорисовывать)? А если это вывод через xv (у меня скриншоты получались просто синими прямоугольниками)?

Куча вопросов, одним словом.

anonymous(*)(2010-06-30 16:34:32)

Mozilla/5.0 (X11; ; Linux i686; rv:1.8.1.23) Gecko/20090823
[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от vilfred 2010-06-30 16:10:30
avatar
Скрыть

Re: Imager-Screenshot-0.009

> запуск xawtv(в нем оно работает)
Если через xawtv работат, то и через mplayer должно. Указывай только нужное устройство /dev/videoX. А mplayer сам умеет в картинках сохранять (-vo png|jpeg|...).

anonymous(*)(2010-06-30 16:36:47)

Mozilla/5.0 (X11; ; Linux i686; rv:1.8.1.23) Gecko/20090823
[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от anonymous 2010-06-30 16:34:32
avatar
Скрыть

Re: Imager-Screenshot-0.009

если будут два баша и они не налезают друг на друга - скриншот оно снимет, надо знать его window id только.

да, фокус на приложение оно переключать не умеет, можно в принципе покопать на предмет того, может ли оно программно перемещать приложения на рабочем столе одно поверх другого

команда xwininfo -root -children -all даст window id всех вообще приложений, напрмер я запустил Mines и сделалего скриншот так:

 http://img97.imageshack.us/img97/5420/screenur.png

а моя прога перловая экзампловая всего лишь выдергивает window id по названию что отображается в верхнем углу каждого window на рабочем столе юзера

  1.  [vilfred@localhost devel]$ xwininfo -root -children -all | grep Mines
  2.   0x4c00003 "Mines": ("gnomine" "Gnomine") 230x387+0+0 +28+25
  3.  [vilfred@localhost devel]$
  4.  

А модуль Imager-Screenshot-0.009 позволяет делать снимок используюя средства XWindow. А так как он использует модуль Imager, то картинка скриншота проги там 24-х битная

Или например можно запустить DosBox или из под wine например CorelDrow и заскриншотить снимок любой проги, но опять таки надо разбираться

Или можно перейти на нулевую консоль из иксов по команде Ctrl+Alt+F1 и оттуда заскриншотить необходимую программу, висящую на консоли по Alt+F7

Или вообще зайти на удаленный комп на котором есть иксы и сделать скриншот нужной проги...

Короче походу это почти полноценная скриншотилка приложений.

vilfred(*)(2010-06-30 17:18:09)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100622 Namoroka/3.6.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от anonymous 2010-06-30 16:36:47
avatar
Скрыть

Re: Imager-Screenshot-0.009

спасибо! попробую через mplayer грабить картинки с устройства видеозахвата

vilfred(*)(2010-06-30 17:24:33)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100622 Namoroka/3.6.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от HEBECTb_KTO 2010-06-30 16:34:06
avatar
Скрыть

Re: Imager-Screenshot-0.009

с этим все нормально, на новом ядре отчегото старый патч bigphysarea не работает. оттого стандартные проги типа streamer -o file.jpg и прочие приблуды не пашут, оно пишет в лог ядра

videobuffer is too small

cat /proc/bigphysarea не существует, хотя модуль в дереве ядра включен и собран, короче геморои еще те

Хотя XSane если ему указать устройство видеозахвата сделает скриншот, вроде делало, но яж не буду каждые 5 секунд нажимать на захватить кадр

vilfred(*)(2010-06-30 17:33:35)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100622 Namoroka/3.6.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от vilfred 2010-06-30 17:33:35
avatar
Скрыть

Re: Imager-Screenshot-0.009

Гы, с юбилеем:  http://www.linux.org.ru/forum/linux-hardware/2884743

Нешта за два-то года не нагуглилось ничего?

HEBECTb_KTO(*)(2010-06-30 17:54:52)

[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от HEBECTb_KTO 2010-06-30 17:54:52
avatar
Скрыть

Re: Imager-Screenshot-0.009

нет =(

vilfred(*)(2010-06-30 17:57:50)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100622 Namoroka/3.6.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от vilfred 2010-06-30 17:57:50
avatar
Скрыть

Re: Imager-Screenshot-0.009

И вот это не нагуглилось:  http://www.opennet.ru/docs/RUS/videostudio ?

HEBECTb_KTO(*)(2010-06-30 17:59:00)

[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от HEBECTb_KTO 2010-06-30 17:59:00
avatar
Скрыть

Re: Imager-Screenshot-0.009

да это я же и написал (  http://www.linux.org.ru/news/doc/387466 ) , только тогда было ядро 2.4 и тогда все работало, а ща ядро 2,6 и приходится изголяться

vilfred(*)(2010-06-30 18:02:44)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100622 Namoroka/3.6.3
[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от vilfred 2010-06-30 18:02:44
avatar
Скрыть

Re: Imager-Screenshot-0.009

Гы :) А если просто снести этот патч нахуй? Никакие современные смотрелки v4l не заработают?

HEBECTb_KTO(*)(2010-06-30 18:06:01)

[#] [Добавить метку] [Редактировать] Ответ на: Re: Imager-Screenshot-0.009 от HEBECTb_KTO 2010-06-30 18:06:01
avatar
Скрыть

Re: Imager-Screenshot-0.009

насчот снести вообще нафиг - не пробовал... нда...

vilfred(*)(2010-07-01 00:53:44)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.3) Gecko/20100622 Namoroka/3.6.3
[#] [Добавить метку] [Редактировать] Ответ на: Imager-Screenshot-0.009 от vilfred 2010-06-30 16:01:00
avatar
Скрыть

Re: Imager-Screenshot-0.009

Классно, хотя не знаю чем он удобнее для пользователя (не для других скриптов Perl), если есть команда import (через ImageMagick).

Oreolek(*)(2010-07-02 12:08:38)

Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.70 Safari/533.4
Этот тред читают 4 пользователя:
Анонимных: 4
Зарегистрированных: 0




(c) 2010-2020 LOR-NG Developers Group
Powered by TimeMachine

Valid HTML 4.01 Transitional Правильный CSS!