Io uso un programma che crea un'immagine grande che devo scorrere per visualizzare. Il programma non ha modo di salvare l'immagine e non ho accesso alla fonte per modificarlo. L'unico modo per ottenere l'immagine dal programma è lo screenshot. Il mio obiettivo è salvare l'immagine a dimensione intera senza dover mettere insieme i singoli screenshot.
Sto usando questo script per provare a fare uno screenshot:
#!/bin/bash
window=$(wmctrl -l | grep "Program$" | awk '{print $1}')
wmctrl -v -i -r $window -e '0,0,0,6030,5828'
wmctrl -i -a $window
import -window $window ~/Desktop/screenshot.png
Questo usa wmctrl per ottenere l'id della finestra ($ window) per una finestra chiamata "Program". Quindi tenta di ridimensionare la finestra alle dimensioni desiderate. Usa imagemagick (import) per salvare uno screenshot.png sul desktop dell'utente. Tutto questo funziona tranne il passaggio di ridimensionamento.
Posso ridimensionare la finestra usando wmctrl -r -e, ma le dimensioni maggiori delle dimensioni dello schermo non funzionano.
Sto usando Ubuntu 10.04 e Gnome Desktop. Corro due monitor, ma ho provato questo con uno di loro disabilitato.
C'è un modo per ridimensionare la finestra più grande del mio schermo per ottenere un enorme screenshot?
Seconda parte:
Grazie alla risposta di sdaau, ho provato a usare xrandr per impostare il pan di schermo, in modo da avere un desktop più grande del mio monitor.
xrandr --output LVDS --panning 2600x2500
Questo comando consente di spostare lo schermo del laptop su un desktop con dimensioni 2600x2500, anche se può mostrare solo 1440x900 contemporaneamente. Per disattivare il panning, posso usare un comando simile per impostare la dimensione totale e con gli zeri per la sezione panoramica. Questo mi restituisce il comportamento del mio portatile originale.
xrandr --fb 1440x900 --output LVDS --panning 0x0
Tutto questo è fatto con xrandr e non richiede alcuna modifica di Xorg.conf (il mio sistema Ubuntu non ha nemmeno un Xorg.conf).
La mia scheda video sembra consentire solo circa 6,5 milioni di pixel, anche se le dimensioni massime sono 8192x8192. Quel massimo sembra essere il massimo per entrambe le dimensioni, ma c'è un limite al numero di pixel che possono essere disegnati, che è la larghezza moltiplicata per l'altezza.
Una volta ridimensionato lo schermo, ho provato di nuovo la sceneggiatura e ho ottenuto uno screenshot. Lo screenshot tuttavia è completamente criptato. Non sono sicuro che non sia in grado di acquisire uno screenshot di una finestra fuori schermo o se non è in grado di gestire le grandi dimensioni della finestra. Con la visualizzazione panoramica, la finestra dovrebbe pensare che sia visibile e il gestore di finestre dovrebbe pensare che sia sullo schermo. Quindi c'è un buffer di pixel da qualche parte con quei pixel al suo interno, quindi dovrebbe esserci un modo per ottenere uno screenshot.
Forse c'è un altro metodo per fare screenshot che potrebbe funzionare meglio dell'importazione.
xvfb
per la sessione X annidata ...