Salve ragazzi, come da titolo vorrei capire come fare in php per "catturare" l'immagine di sfondo di un div nella mia pagina per poterla salvare, mi date una mano?
Grazie!
Salve ragazzi, come da titolo vorrei capire come fare in php per "catturare" l'immagine di sfondo di un div nella mia pagina per poterla salvare, mi date una mano?
Grazie!
La difficoltà della realizzazione dipende da come è impostato lo sfondo e può essere molto complicato.
Caso "facile":
se si trova esplicitamente scritto nel tag style del div, allora puoi prendere il nome (e l'eventuale percorso) del file che definisce lo sfondo con una espressione regolare.
Una volta che hai il percorso ed il nome del file, lo leggi con file_get_contents() e te lo salvi come vuoi.
Caso più complicato:
Se si trova in una regola del CSS ed il CSS è in un file a parte, dalla pagina html devi leggere il tag che invoca il CSS, leggere dove si trova ed il suo nome.
Devi sapere l'id o la classe del div di cui vuoi lo sfondo.
Sapendo queste cose leggi il file CSS con file_get_contents() così da avere il contenuto del CSS.
Ora devi scansionare il CSS alla ricerca del gruppo di regole riguardanti il div che ti interessa (le riconosci dall'id o dalla classe del div), trovato il gruppo devi leggere la regola specifica per lo sfondo, così da sapere percorso e nome file.
Una volta che hai il percorso ed il nome del file, lo leggi con file_get_contents() e te lo salvi come vuoi.
Se non sai fare nulla o quasi di queste cose, ti consiglio di approfondire le tue conoscenze oppure di chiedere nella sezione "Offro lavoro" se vuoi che qualcuno lo faccia per te.
Come anticipato si tratta di una cosa abbastanza articolata, non penso che qualcuno abbia tempo/voglia di scriverti tutto il codice qui.
Anche perché per farlo bisogna conoscere la struttura del sito su cui si deve agire.
Ultima modifica di Alhazred; 12-02-2014 a 12:04
Ciao Alhazred grazie per la risposta, comunque non sono troppo novizio di php, il problema però è che non credo possa fare come mi hai suggerito te..
ti spiego, lo sfondo da catturare viene dalla MIA stessa pagina. Ho realizzato una piccola applicazione con le API di google maps che mi fa vedere (in base alle coordinate che passo) una mappa PRIVA di scritte (nomi di strade/punti di interesse/ecc), ora quello che mi serve di fare è uno "screenshot" (letteralmente!) di questa pagina in modo da potermi salvare la mappa così come la vedo da schermo sotto forma di immagine..come se schiacciassi "STAMP R SIST" insomma.
ho spulciato tra quelle API ma non ho trovato assolutamente nulla che faccia al caso mio, e non so neanche se questo metodo funzioni però vorrei provare lo stesso ma non so da dove cominciare purtroppo perchè non mi sono mai trovato a fare qualcosa del genere
Allora basta cercare "screenshot php" su google per trovare ad esempio (primo link)
http://stackoverflow.com/questions/7...hots-using-php
Oppure (secondo link)
http://www.html.it/script/cattura-sc...do-script-php/
ahahahah eh scusa ma il fatto dello "screenshot" mi è venuto sta mattina, sapessi che razza di query di ricerca ho impostato fino ad ora ahahah comunque ho risolto con il primo pezzetto di codice, grazie mille per il link..!
PS. che tu sappia esiste un modo per "ritardare" l'esecuzione di un comando php? Per esempio finchè non schiaccio un pulsante o qualcosa così (però senza dover ricaricare la pagina!)
No, perché PHP vive sul server, il pulsante invece sul browser.
Al più col pulsante puoi attivare una chiamata AJAX che attiva sul server uno script PHP, ma non avrà effetto sulla pagina che stai guardando, perché quella è sul tuo PC, non sul server.
Vincenzo perché hai aperto una discussione simile anche in javascript? Lo sai il crosspost (discussione simile in due forum diversi) è vietato?![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Ciao andrea, scusa non sapevo che fosse vietato ne ho aperti 2 perchè non sapevo se potevo ottenere il risultato voluto con un linguaggio lato client o lato server chiedo veniacancellate pure quello su javascript se volete..
Ciao Alhazred ho bisogno di un aiuto, ero riuscito a far funzionare tutto a dovere (in locale), e a scattare questo benedetto screenshot con la funzione imagegrabscreen() che è PERFETTA per lo scopo..tutta via mi sono presto accorto che posso usarla SOLO in ambiente windows, ed il sito dove vorrei "agganciare" questa piccola app è situato in un server linux ergo: errore
Sto impazzendo (guarda l'ora :S) ma devo assolutamente trovare una funzione che faccia la STESSA IDENTICA COSA, che però funzioni anche sotto linux..!!
Ho provato il secondo script che mi hai postato, ma non va bene in quanto ha un limite molto ridotto di pixels..anche se sulla descrizione c'è scritto "Lo script permette di catturare e salvare screenshot contenuti fino a 2048 x 4096 pixels." in realtà il massimo che sono riuscito ad ottenere è stato 500x500 -.-
Comunque oltre a questo ho provato svariate altre librerie tra le quali GrabzIt ed altre ancora ma nulla, sono in alto mare..non è che potresti darmi una mano? esiste un altra funzione delle GD che giri su ogni sistema? O per lo meno solo su linux?