2010-07-23 6 views
16

Voglio creare un'immagine come appare una pagina web, ad es. crea una piccola anteprima delle immagini html +. non deve essere perfetto (ad esempio il rendering flash/javascript).genera un'immagine (ad esempio jpg) di una pagina Web?

Chiamerò usare il codice su linux, idealmente sarebbe una libreria java, ma uno strumento da riga di comando sarebbe anche bello.

qualche idea?

+0

possibile duplicato di [Programma riga di comando per creare schermate del sito Web (su Linux)] (http://stackoverflow.com/questions/125951/command-line-program-to-create-website-screenshots-on-linux) –

risposta

12

Provare CutyCapt, un'utilità della riga di comando. Usa Webkit per il rendering e le uscite in vari formati (SVG, PNG, ecc.).

+0

+1: questo farà il lavoro. – tur1ng

+0

sembra buono, ma mi piacerebbe una soluzione che è gratuita per uso commerciale – JohnSmith

+0

in realtà, penso che potrei sbagliarmi, ho capito bene che CutyCapt + QT sono liberi di usare per uso commerciale, con la licenza LGPL? http://qt.nokia.com/products/licensing – JohnSmith

2

è possibile ottenerlo quasi perfetto e anche multipiattaforma, utilizzando un plug-in del browser.

BrowserShots è un progetto open source che possono avere un po 'di codice è possibile utilizzare.

vedi anche:

+0

Non è certo una soluzione di programmazione. –

+2

hai guardato uno dei link che ho fornito? Ci sono opzioni a riga di comando, funzionano tutte su linux, esattamente come chi richiede richiede –

+0

cheers per i link, sembra come alcune possibili soluzioni in là. – JohnSmith

1

per prendere uno screenshot in te rminal con ImageMagick, digitare la seguente riga in un terminale e quindi scegliere e trascinare il mouse su una sezione dello schermo:

import MyScreenshot.png 

Per catturare l'intero schermo e dopo un certo ritardo e ridimensionare, utilizzare il seguente comando:

import -window root -resize 400×300 -delay 200 screenshot.png 

e 'possibile utilizzare una miscela di xwininfo e importazione per recuperare la finestra id del browser e fare uno screenshot di quella finestra. Uno script bash per automatizzare questo processo sarebbe qualcosa di simile a questo:

#!/bin/bash 
window_id=`xwininfo -tree -root | grep Mozilla | awk '{print $1}'` 
import -window $window_id -resize 100x100 tumb.png 

Questo script creerà un 100x100 screenshot di Firefox sulla directory corrente sotto il nome tumb.png

Diverse fonti indicano come gestire un script bash all'interno di un'applicazione Java, google può aiutarti in questo. Se sei di fretta, controlla this e this.

+0

per chiarire, questo sarà chiamato da un software stand alone (non un software ui) ... quindi deve essere automatico – JohnSmith

+0

Ho modificato la risposta sopra e aggiunto le informazioni che stai cercando. – karlphillip

0

Se siete interessati a Java, forse si poteva guardare l'automazione del browser utilizzando Selenio-RC http://seleniumhq.com

E 'un po' di server Java che è possibile installare sulla scatola e il programma stesso sarà eseguire comandi remoti in una programma di navigazione in rete.

passi come (questo è pseudo codice a proposito, il mio I Codice selenio in PHP e non riesco a ricordare il 100% delle specifiche fuori dalla parte superiore della mia testa)

selenium.location("http://foo.com") 
selenium.open("/folder/sub/bar.html") 
selenium.captureScreenshot("/tmp/" + this.getClass().getName() + "." 
           + testMethodName + ".png"); 

In realtà, ho solo ha fatto una ricerca sul web rapido per la sintassi esatta su che l'ultimo ... e questo ragazzo ha un blog con quello che potrebbe essere in realtà il codice lavorare in java :) https://dev.youdevise.com/YDBlog/index.php?title=capture_screenshots_of_selenium_browser_&more=1&c=1&tb=1&pb=1

C'è anche un certo numero di siti web che forniscono questo servizio "croce browser e sistema operativo "Non riesco a ricordare cosa siano. Fondamentalmente hanno una nuvola di ogni singolo sistema operativo e combinazione di browser, e si collegano con ogni macchina, prendono uno schermo e lo memorizzano sul loro sito in modo che tu possa tornare in poche ore quando hanno finito.

Ahh ... un'altra websearch ed è tuo :) http://browsershots.org/

0

Dopo aver letto questa pagina, pensavo, mi permetta di fuoco fino del browser Midori: http://midori-browser.org/ e quando ho provato l'opzione -h, ho visto:

-s, --snapshot  Take a snapshot of the specified URI 

QutyCapt è difficile da compilare e ha molte dipendenze. Midori ce l'ha di meno. Emette il PNG del sito Web nella cartella TMP. Si può ottenere il file con:

midori -s http://www.rcdwealth.com new.png 2>/dev/null | awk '{ print $4}' 

Dopo di che, il file può essere convertito in Dimensione miniatura utilizzando il programma convert di ImageMagick.