Scaricare un'immagine da un sito internet
Di seguito vedremo due esempi per scaricare dal WEB file immagini. Il primo esempio utilizza le sole funzioni e risorse di Gambas; il secondo utilizza il comando Shell ed il programma wget.
Usando le sole risorse e funzioni di Gambas
L'esempio |1| prevede il posizionamento sul Form di una PictureBox, nonché impostazione anche dei componenti: gb.net e gb.net.curl : Public myhttp As New HttpClient As "myhttp" Public stringa As String
Public Sub Form_Open() invia_richiesta() End Public Sub invia_richiesta() ' Andiamo a scaricare il file immagine: myhttp.URL = "www.indirizzo.del.file.immagine.da.scaricare" myhttp.Timeout = 15 myhttp.Get() End Public Sub myhttp_Read() Dim sBuf As String ' Andiamo a leggere il flusso di dati del file immagine: If Lof(MyHTTP) Then Read #MyHTTP, sBuf, Lof(MyHTTP) stringa = stringa & sBuf End If End Public Sub MyHTTP_Finished() Label1.Text = ("Immagine scaricata !") Wait MyHTTP.Close ' Ricreiamo il file: File.Save("percorso_del_file_ricreato", stringa) ' Carichiamo nella "PictureBox" il file immagine ricreato: PictureBox1.Picture = Picture["/tmp/berlino.jpg"] End
Usando Shell ed il comando wget
Nell'esempio che segue sul Form del programma saranno posti semplicemente una PictureBox ed un Button. Scaricheremo un'immagine da un sito internet mediante wget (che sarà lanciato nel nostro programma mediante il comando Shell), e successivamente la caricheremo nella PictureBox:
Public Sub Button1_Click() ' Scarichiamo l'immagine dal sito web: Shell "wget http://indirizzo_web_dell'_immagine_da_scaricare --directory-prefix percorso_ove_sarà_scaricata" Wait |2| ' Carichiamo l'immagine nella PictureBox: PictureBox1.Picture = Picture["percorso_ove_l'immagine_è_stata_scaricata"] End
Note
[1] L'esempio è tratto con alcune modifiche da altro esempio realizzato dall'utente fsurfing del Forum Gambas-it.org.
[2]Se si vuole inserire l'immagine in una nuova cartella da creare, questa deve essere aggiunta alla fine del pecorso ove si intende scaricare il file:
--directory-prefix /percorso/nuova_cartella