Perl: способы создания скриншотов

Discussion in 'PHP' started by eden, 6 Dec 2011.

  1. eden

    eden New Member

    Joined:
    9 Jan 2010
    Messages:
    26
    Likes Received:
    1
    Reputations:
    0
    Доброго времени суток! Возникла задача, с помощью перлскрипта делать скриншоты всего экрана, отдельных окон, и произвольной области окна.
    Поискал в CPANe выдал два модуля Imager::Screenshot и Imager::Search::Screenshot, но в ходе установки выяснилось, что они работают только на винде и на дебиане, а у меня ubuntu
    Гугл выдает в основном примеры скриншотов для вебсайтов, в привязке к определенному браузеру, мне же нужны более обширные полномочия по фотографированию экрана.

    Вопрос: может кто нибудь знает другие способы создания скриншотов в программах на Perl?
     
  2. eden

    eden New Member

    Joined:
    9 Jan 2010
    Messages:
    26
    Likes Received:
    1
    Reputations:
    0
    Все таки пытаюсь установить Imager::Screenshot, после выполнения команды perl Makefile.PL выдает:
    Code:
    Use of uninitialized value $description in concanation (.) or string at Makefile.PL line 221. 
    Could not find libX11.so () Could not find windows.h (Win32 header) OS 
    unsupported: Headers or libraries not found for a supported GUI  Sorry, I can't 
    find headers or libraries for a supported GUI You need to install development 
    headers and libraries for your GUI For Win32: Platform SDK or a substitute For 
    X11: X11 headers and libraries, eg. the libX11-dev package on Debian For OS X: 
    Install Xcode
    
    Вот что пишет aptitude на проверку установленных пакетов, по запросу search libx11:
    Code:
    i   libx11-6                        - X11 client-side library                   
    i   libx11-6-dbg                    - X11 client-side library (debug package)    
    i   libx11-data                     - X11 client-side library                    i   libx11-dev                      - X11 client-side library (development heade 
    i   libx11-freedesktop-desktopentry - perl interface to Freedesktop.org .desktop 
    i   libx11-protocol-perl            - Perl module for the X Window System Protoc 
    i   libx11-xcb-dev                  - Xlib/XCB interface library (development he 
    i   libx11-xcb1                     - Xlib/XCB interface library                 
    i   libx11-xcb1-dbg                 - Xlib/XCB interface library (debug package)
    кто нибудь сталкивался с таким парадоксом, вроде все библиотеки стоят, а мейкфайл их не видит
     
  3. eden

    eden New Member

    Joined:
    9 Jan 2010
    Messages:
    26
    Likes Received:
    1
    Reputations:
    0
    Решить проблему пока не удалось, пришлось идти в обход
    буду использовать линуксовую утилиту xwd (она может делать скриншоты всей области, отдельного окна и т.д (она более функциональная чем тот же scrot)), которую буду вызывать из перл скрипта через команду:
    Code:
    xwd -id [хэндл октрытого окна] > image.xwd
    дескрипторы открытых окон можно посмотреть, через команду:
    Code:
    xwininfo -root -tree -int
    p.s. Если кто-то знает чисто перловое решение, был бы очень признателен за дельный совет.