Differenze tra le versioni di "Scaricare un'immagine da un sito internet"

Da Gambas-it.org - Wikipedia.
Riga 68: Riga 68:
  
  
b) da un oggetto specifico, che supporta il codice html, come la ''WebView''. In tal caso è necessario attivare, come si sa, anche il componente ''gb.qt4.webkit:
+
b) da un oggetto specifico, che supporta il codice html, come la [[Controlli_e_finestre_che_supportano_il_codice_HTML#L.27oggetto_WebView|''WebView'']]. In tal caso è necessario attivare, come si sa, anche il componente ''gb.qt4.webkit:
 
  '''Public''' Sub Form_Open()   
 
  '''Public''' Sub Form_Open()   
 
    
 
    

Versione delle 08:56, 18 nov 2012

Di seguito vedremo tre possibilità per scaricare dal WEB file immagini:
- la prima utilizza le sole funzioni e risorse di Gambas;
- la seconda utilizza anche il codice html;
- la terza 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, di un Button e di una Label, nonché l'impostazione anche dei componenti: gb.net e gb.net.curl :

Private myhttp As New HttpClient As "myhttp"  
Private stringa As String


Public Sub Button1_Click()

' invia_richiesta al server per scaricare il file immagine: |2|
  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: |3|
  File.Save("percorso_del_file_ricreato", stringa)


' Carichiamo nella "PictureBox" il file immagine ricreato:
  PictureBox1.Picture = Picture["percorso_del_file_ricreato"]

End


Utilizzo del codice HTML

Si potrà effettuare il collegamento ad un file immagine richiamandolo:

a) da un'oggetto che permette l'utilizzo del codice html:

Public Sub Button1_Click()

   Message.Info("<A HREF=\"http://indirizzo_web_dell'_immagine_da_mostrare\">Clicca qui per vedere l'immagine</a>")

End

In questo caso, però, l'immagine sarà aperta e mostrata nel proprio webbrowser. |4|


b) da un oggetto specifico, che supporta il codice html, come la WebView. In tal caso è necessario attivare, come si sa, anche il componente gb.qt4.webkit:

Public Sub Form_Open()  
 
  WebView1.Html = "<HTML><A HREF='http://www.indirizzo_web_immagine'>Collegamento ipertestuale con l'immagine da mostrare.</a></html>"  
 
End

Nella WebView verrà mostrato il testo, sul quale si dovrà cliccare per far apparire l'immagine.


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 |5|
 
' 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] In vero, con questa metodo è possibile scaricare qualsiasi tipo di file.

[3] E' possibile ricreare utilmente con questo metodo qualsiasi tipo di file.

[4] In questo caso sarà possibile soltanto utilizzare il file (dunque trattandosi di file immagine, visualizzarla), al quale ci si è collegati via internet, e non sarà possibile direttamente ottenerne una copia indipendente da salvare.

[5] 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