Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Postato originariamente da gianni47: Siccome non ho capito esattamente a cosa serve sapere il numero dei file della cartella, ho pensato che
avrebbe potuto essere utile anche il numero delle sole immagini selezionate , per questo ho implementato
tutte e due le funzioni di conteggio da usare secondo l'esigenza.
Quello che ti viene proposto è frutto di un pensiero, non è detto che poi lo devi usare, il numero sarebbe servito se a priori vuoi impostare un ambiente per maneggiare un numero noto di immagini e nella cartella ci sono mescolati files diversi da immagini. Ma se hai provato il mio esempio hai visto che neanche io l'ho usato, invece ho preferito mettere un filtro nella open in modo da avere solo immagini grafiche riconosciute da VB .NET:
Codice sorgente - presumibilmente C# / VB.NET
OfD1.Filter = "Images(*.jpg *.bmp *.png *.gif *.tif)|*.jpg;*.bmp;*.png;*.gif;*.tif|Tutti i file (*.*)|*.*"
Testo quotato
Postato originariamente da gianni47:Ho cercato di provare l'esempio di Thejuster perché sarei curioso di vedere il risultato utilizzando FlowLayoutPanel,
ma non sono riuscito a farlo funzionare perché mi da errore sulla riga p.Click += P_Click
Come già ti ha comunicato Thejuster la riga è uscita da un convertitore e non è corretta la devi sostituire con:
Codice sorgente - presumibilmente C# / VB.NET
AddHandler p.Click, AddressOf P_Click
e l'esempio di Thejuster funzionerà.
Quello che affermo ora scaturisce dalla sola lettura del codice, non ho fatto prove.
Hai postato questo:
'--- In questo caso Location sarà: ximg = 5 e yimg = 5
'---------------------------------------------------------- Dimensioni dell'immagine risultante = ( 115 x 76 )
pic(Npbx).Image= bm_dest '------- caricamento dell'immagine in PictureBox
alla riga 8 carichi un file : pic(Npbx).Image = Image.FromFile(FileName)
poi alla riga 16 ancora da una BMP: pic(Npbx).Image = bm_dest
Ritengo che la riga 8 va eliminata, forse è lei che ti da il raddoppio di immagini conteggiate.
Invece per liberare la memoria devi aggiungere dopo la riga 16 :
bm_source.Dispose()
Ti avevo anche consigliato di usare un User Control (Controllo Utente se hai VS in italiano), il vantaggio dell'user control e che non ti devi preoccupare di posizionare label e picturebox, non ti devi preoccupare neanche del clik con un indice perché il codice dell'evento click lo scrivi dentro all'user control. Avevo già un programma di esempio Visualizzatore, ora l'ho modificato con alcune idee di Thejuster, l'UserControl si chiama UC1, controlla come funziona.
n questi giorni ho pulito diversi chili di fagioli, patate e cipolle per la fagiolata benefica del mio paese.
Ora Thejuster mi parla di C Like, CType e void del click; che verdure sono che non le conosco?
Questo per dire che di fronte a questi discorsi le mie conoscenze informatiche si fermano miseramente.
Comunque grazie al vostro contributo e alcune rielaborazioni, sono riuscito a stendere un codice che
soddisfa egregiamente le mie aspettative. La modifica sostanziale è stata quella di sostituire il Panel
con il FlowLayoutPanel ( che non conoscevo ancora ). Da qui ho implementato cornice, etichetta e il Click
che mi visualizza l'immagine selezionata ingrandita in una ImageBox.
Private Sub P_2Click(ByVal sender As Object, ByVal e As EventArgs)
'------------------ da implementare -------------------
End Sub
Ora avrei bisogno di implementare la selezione multipla con il mouse.
Se gentilmente mi potete dare qualche indizio ve ne sarei grato.
Saluto e ringrazio dell'attenzione.
Vi chiedo scusa ma ho risposto senza accorgermi che c'erano altri post nella pagina successiva.
Leggo e poi rispondo.
Scusatemi ancora, sono reduce dalla fagiolata ( preparazione e distribuzione ) e sono ancora un po fuso.
Ciao Carlo, ho scaricato e avviato il tuo VisualizzaIMMAGINI.
Cosa dire?. Non so se essere più demoralizzato o ammirato, comunque tutti e due.
Se non fosse che realizzare programmi in VB mi intriga e mi appassiona, andrei a fare altro.
Diminuendo con gli anni le elasticità mentali, da tempo mi sono dato una direttiva nella realizzazione
dei miei programmi:
Utilizzare prevalentemente codici che conosco e su cui posso intervenire anche dopo tanto tempo.
Il metodo che mi sono creato funziona così:
Al posto dei pulsanti solitamente utilizzo le Label, e dal click o doubleclick faccio delle call a sub pubbliche,
che sono la maggioranza dei miei codici come pure le variabili. Questo metodo ha i suoi pro e contro,
ma mi permettere di adattare facilmente il programma modificando, sostituendo o eliminando alcune sub
o la sequenza della loro attuazione.
Credo che qualunque sia l'obiettivo da raggiungere e i metodi utilizzati, la programmazione stimola e
gratifica la creatività dell'artefice e dunque da coltivare senza ripensamenti, e come dici tu :
In programmazione tutto è permesso.
Ho preparato una versione demo del mio programma " almealbumfoto " (così come si pronuncia in dialetto piemontese). Ora come mi hai suggerito tenterò di allegarlo, poi con calma andrò ad analizzare più dettagliatamente il tuo progetto, dopodiché magari provo a giocare un poco per vedere se è possibile
fondere il tuo codice con il mio metodo come ho fatto in questa release.
Purtroppo nell'ambito delle mie conoscenze non ho nessuno con cui parlare e confrontarmi su questi temi,
se non in rete, perciò non finirò mai di ringraziarti per la tua disponibilità.
Quando si programma per divertimento non sei obbligato a seguire nulla, quello che va bene per te va bene per tutti.
il programma va bene, ti consiglio di modificare il filter e la directory iniziale, se la ometti il programma si riaprerà nell'ultima cartella usata.
ofd1.Filter="Images(*.jpg *.bmp *.png *.gif *.tif)|*.jpg;*.bmp;*.png;*.gif;*.tif|Tutti i file (*.*)|*.*"
' ****************************************
ofd1.FilterIndex=2
'......
'......
'......
'......
Per l'implementazione successiva: click per selezionare immagini multiple, aspetto che prendi confidenza con l'user control, che semplifica di molto il compito.
Se hai domande, fai pure.
Ciao Carlo, ho riletto i precedenti post per raccogliere le idee e riuscire ad orientarmi sul tema dei contenitori.
Sto cercando di capire quale potrebbe essere il metodo migliore da utilizzare tra le due soluzioni:
Panel o flowLayoutPanel ?
Da una prima valutazione mi sembra che i risultati finali dovrebbero essere paragonabili,
escludendo ovviamente i codici esecutivi, ma credo che sicuramente ci siano delle differenze.
Siccome questa scelta è alla base di tutto il progetto, una tua opinione mi sarebbe di grande aiuto.
Per gli user control hai ragione, prima mi alleno e poi ne riparliamo.
Ciao Carlo, per un momento stavo dimenticando quello che ho fatto fino ad ora: cercare in rete.
Non è stato così difficile capire che la scelta ovvia è il flowLayoutPanel.
Non mi sembra il caso di romperti le scatole per queste cose, quindi non disturbarti a rispondermi;
quando sarà ora stai certo che non mancherò di farmi vivo.
Un saluto.