
pinguino (Ex-Member)
Pro
    
Messaggi: 172
Iscritto: 26/12/2007
|
Ciao
Ho un problema molto semplice da risolvere (almeno credo), di cui però non trovo la soluzione.
Ho una picturebox che visualizza un file usando image.fromfile, poi però ho la necessità di cancellare quel file dall' hard disk ma lasciando l' immagine nella picturebox.
Vi posto un codice:
Codice sorgente - presumibilmente Plain Text |
Schermo.PictureBox1.Image = Image.FromFile("C:\Img3.jpg")
Kill("C:\Img3.jpg")
|
Ho notato che non mi restituisce alcun errore, ma allo stesso tempo il file non viene cancellato, in altri programmi ho trovato la soluzione, ma in quel caso non era necessario leggere un file...
Come potrei fare?
Ultima modifica effettuata da pinguino il 29/12/2010 alle 19:22 |
|

pinguino (Ex-Member)
Pro
    
Messaggi: 172
Iscritto: 26/12/2007
|
Ragazzi, senza fare troppo casino, ho trovato la soluzione, eccola per chi avrà il mio stesso problema:
Semplicemente al posto di:
Codice sorgente - presumibilmente Plain Text |
PictureBox1.image = image.fromfile("C:\Img3.jpg")
|
ho messo:
Codice sorgente - presumibilmente Plain Text |
PictureBox1.Load("C:\Img3.jpg")
|
In questo modo l' immagine è nella picturebox ma allo stesso tempo il file non è in uso, e posso dunque eliminarlo senza problemi.
Grazie cmq a tutti
P.S. Ad Andrea933 ho votato positivamente la sua risposta, è l' unica che può aiutare sul serio. Ultima modifica effettuata da pinguino il 30/12/2010 alle 19:32 |
|

()
Newbie
    
Messaggi:
Iscritto:
|
Ho fatto qualcosa che ti puo essere utile in c#, d'altronde gli oggetti sono gli stessi.
In entrambi i programmi devi includere System.IO e System.Drawing.
Nel primo programma leggi l'immagine e la copi negli appunti:
Codice sorgente - presumibilmente Plain Text |
Clipboard.SetImage(TuA_iMmAgInE);
|
Poi dal tuo secondo programma crei una variabile di tipo Image e ci leggi l'immagine
Codice sorgente - presumibilmente Plain Text |
Image immagine=Clipboard.GetImage();
|
Poi se buoi visualizzarlo nella tua picturebox, fai ad esempio
Codice sorgente - presumibilmente Plain Text |
PictureBox1.Image = immagine;
|
Il codice in VB e praticamente uguale
PS: attento, xò che se uno fa ctrl+c o copia di qualcosa tra la scrittura e la lettura questo metodo non funziona più.
Se non vuoi rischiare, scrivi l'immagine in un file e poi caricala su immagine, senza caricare direttamente il file
Codice sorgente - presumibilmente Plain Text |
Image immagine=Image.FromFile(PeRcOrSo_TuA_ImMaGiNe);
PictureBox1.Image = immagine;
|
Così facendo puoi eliminare il file..
Ultima modifica effettuata da il 30/12/2010 alle 16:36 |
|

walker93 (Member)
Expert
    
Messaggi: 460
Iscritto: 31/01/2010
|
Ti conviene copiare l'immagine in una cartella temporanea del PC e visualizzare quella copiata nella picturebox, in questo modo puoi eliminare l'originale senza problemi, e alla chiusura del programma o quando vuoi tu eliminare la copia.
P.S. la funzione kill non è molto orientata agli oggetti usa invece:
Codice sorgente - presumibilmente Plain Text |
IO.File.Delete("percorso")
|
Ultima modifica effettuata da walker93 il 29/12/2010 alle 19:37 |
|

pinguino (Ex-Member)
Pro
    
Messaggi: 172
Iscritto: 26/12/2007
|
Il problema è che il mio programma deve continuamente ricreare l' immagine, per questo è necessario che la cancelli ogni volta che viene visualizzata, dunque anche se creassi una cartella temporanea, il problema rimarrebbe...
su alcuni forum ho trovato Picturebox1.image.dispose(), ma quando lo uso mi da errore vb dicendomi parametro non valido...
Ultima modifica effettuata da pinguino il 29/12/2010 alle 22:28 |
|

pinguino (Ex-Member)
Pro
    
Messaggi: 172
Iscritto: 26/12/2007
|
Nessuna soluzione?, io sto continuando a provare in tanti modi diversi ma niente, mi si presenta sempre lo stesso problema...
|
|

walker93 (Member)
Expert
    
Messaggi: 460
Iscritto: 31/01/2010
|
Postato originariamente da pinguino:
... il mio programma deve continuamente ricreare l' immagine, per questo è necessario che la cancelli ogni volta che viene visualizzata...
|
Questo cosa significa??
Nella picturebox l'immagine da mostrare è variabile o è una scelta da te che non cambia mai? |
|

pinguino (Ex-Member)
Pro
    
Messaggi: 172
Iscritto: 26/12/2007
|
Praticamente il mio problema è questo: il programma che sto cercando di fare fà delle foto dello schermo, dopodichè le visualizzo in una picturebox di un altro programma, e per farlo, devo prima salvare la foto in C:\Img3.jpg, e deve essere un processo continuo, invece Img3.jpg rimane in uso dalla picturebox...
E' da ieri che cerco di capire come fare... Ma proprio non riesco a trovare una soluzione...
|
|

()
Newbie
    
Messaggi:
Iscritto:
|
forse invece di salvare l'immagine in un file ti conviene salvarla negli appunti così che ogni volta che la visualizzi viene caricata in RAM
|
|