Visual Basic Simple
Estrarre un'immagine da Internet
Sincronizza Indice
Sincronizza Indice
Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Ricerca personalizzata

Difficoltà: 2 / 5

Sono sempre più frequenti i programmi che accedono ad Internet per effettuare alcune operazioni. Molti programmi rientrano in quella categoria detta Ad-ware, ovvero a costo gratuito dietro visione di banner pubblicitari.
Le immagini che saranno mostrate nel programma, tuttavia, non sono statiche, ma cambiano continuamente; infatti tali programmi si collegano ad Internet per recuperare le immagini e mostrarle dentro un contenitore Immagine.

L'operazione da svolgere è molto semplice e sfrutterà il controllo Inet o Microsoft Internet Transfer Control; sarà necessario scegliere tale controllo dalla voce Componenti.

Il progetto si compone di un solo form con cinque controlli:

Figura 1Abbiamo inserito una semplice Label descrittiva di nome EtichettaPercorso con il testo "Indirizzo dell'immagine da estrarre".

Inseriamo anche una casella di testo di nome PercorsoImmagine: essa servirà per inserire il percorso Internet dell'immagine da estrarre. Inseriamo anche un CommandButton di nome Estrai. In fondo al form inseriamo una PictureBox di nome Immagine ed un controllo Inet di nome AccessoInternet.

Il funzionamento è molto semplice: l'utente immette nella casella di testo il percorso dell'immagine da estrarre, preme il pulsante Estrai e l'immagine apparirà nella PictureBox.

Il codice si compone di una sola Sub, legata all'eventoClick sul pulsante Estrai:

  1. Option Explicit
  2. Private Sub PulsanteEstrai_Click()
  3.     Dim buffer() As Byte
  4.     Dim FileNR As Integer
  5.     buffer = AccessoInternet.OpenURL(PercorsoImmagine.Text, icByteArray)
  6.     FileNR = FreeFile
  7.     Open App.Path & "\IMGTMP" For Binary As FileNR
  8.     Put FileNR, , buffer
  9.     Close FileNR
  10.     On Error Resume Next
  11.     Immagine.Picture = LoadPicture("")
  12.     Immagine.Picture = LoadPicture(App.Path & "\IMGTMP")
  13.     Kill App.Path & "\IMGTMP"
  14. End Sub

Alla riga 4 abbiamo dichiarato una matrice di byte senza dimensione di nome buffer. Essa servirà per memorizzare i dati provenienti dalla chiamata ad Internet. Alla riga successiva abbiamo la variabile FileNR che servirà per identificare l'handle del file temporaneo in cui scrivere l'immagine proveniente da Internet.

La prima operazione eseguita in questa Sub è la lettura dell'immagine tramite il controllo AccessoInternet. L'operazione da eseguire è la chiamata al metodo OpenURL passandogli l'indirizzo della pagina da aprire, presa dalla casella di testo PercorsoImmagine. Il secondo parametro è il tipo di dati da restituire: in questo caso il valore icByteArray indica di scrivere i dati in un array di Byte, quale è la matrice buffer.

Alla riga 7 viene trovato il primo handle di file libero attraverso la funzione FreeFile.
Trovato l'handle si procede all'apertura del file IMGTMP in modalità binaria; alla riga successiva viene scritto il buffer di dati nel file appena aperto; effettuata la scrittura del file esso sarà chiuso (righe 7-10).

Alla riga 11 viene inserita una semplicissima funzione per evitare di bloccare il programma in caso di errore: infatti se l'immagine non viene trovata oppure il server remoto risponde con altri dati che non costituiscono un'immagine, il programma genera un errore. Questa funzione fa sì che il programma proceda regolarmente come se non fosse stato generato alcun errore.

Alla riga 12 viene cancellata l'immagine precedente e in seguito viene caricata l'immagine dal file IMGTMP (riga 13). Caricata l'immagine il file può essere cancellato (riga 14).

Possiamo passare alla prova, tra l'altro semplicissima, digitando l'indirizzo di un'immagine di VB Simple nella casella di testo e premendo il tasto Estrai.

Figura 2
Figura 2

Il programma è estremamente semplice, ma non include alcun codice di controllo degli errori. È soltanto un semplice esempio per comprendere il funzionamento di un processo di prelevamento di dati da Internet.

Fibia FBI
23 Aprile 2001

Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Scarica il testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Torna all'indice degli HowTo