Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Thumbnail di immagini: come fare?

Salve, dovrei visualizzare l'anteprima (thumbnail) delle immagini il cui
percorso č presente in un database.
Riesco a farlo caricandole in controlli image con LoadPicture, ma questo
metodo risulta lento perchč la LoadPicture carica l'intera immagine poi sono
io che la rimpicciolisco tramite stretch e height/width dell image.
Dato che il programma deve caricare 10 anteprime alla volta, vengono
caricate 10 immagini intere e poi ridimensionate, e questo metodo risulta
abbastanza lento.
In particolare mi servirebbe un metodo che carichi direttamente l'immagine
rimpicciolita in modo da essere piů veloce (vedi thumb di ACDSee), in questo
la LoadPicture non mi aiuta...
Qualche suggerimento?
GRAZIE

 GRAZIE
di niente!
Seriamente: credo che il metodo più veloce sia inserire le immagini in
risoluzione normale e a bassissima risoluzione. Poi nell'eseguibile, apri
solo quelle a bassa risoluzione. Con photoshop puoi creare, senza problemi,
una azione che al momento di salvare l'immagine ne salvi una copia in bassa
risoluzione in una determinata cartella
D
================================
TERZA LEGGE DI FINAGLE: In qualsiasi insieme di dati, la cifra cosi'
evidentemente corretta da non richiedere un controllo e' l'errore.
================================

 risoluzione normale e a bassissima risoluzione.
ma come fa ad esempio esplora risorse a visualizzare i thumb in modo
velocissimo? io voglio adottare *quel* metodo!
qualcuno sa come fare?
GRAZIE

 ha
scritto:

beh, non so quanto è lento il tuo programma ma non mi pare che windows sia
così veloce a visualizzare le anteprima. cmq abilitando la visualizzazione
dei file nascosti nelle cartelle in cui sono presenti delle immagini si può
trovare un file chiamato thum.db o qualcosa di simile. *penso* che venga
creato automaticamente la prima volta che apri una cartella in
visualizzazione anteprima che contiene delle immagini. suppongo che aiuti il
sistema ad essere più veloce le altre volte e forse contiene le thumbnails
delle immagini.
Questa potrebbe essere appunto un'idea: la prima volta che visualizzi una
determinata lista di immagini il programma crea le thumbnails a bassa
risoluzione, quindi le salva tutte in un file binario. quindi le volte
successive sarà sufficiente aprire questo file binario e visualizzare le
anteprime.
del resto non credo che ci siano altre soluzioni.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

> Qualche suggerimento?
Forse puņ aiutarti un OCX ke postai al sito comune tempo fa... Cerca 
PicStripOCX o PicStrip...
Antonio Mirarchi 

 PicStripOCX o PicStrip...
grazie ho provato il tuo ocx, ti devo fare i complimenti, è molto carino ma
purtroppo le prestazioni sono le stesse... nessuno sa come fa windows a fare
l'anteprima delle immagini? eppure ci sarà un api o qualcosa da utilizzare
spero.. devo fare l'anteprima di immagini che occupano in media 260Kb l'una
e per fare 10 thumbnail ci mette circa 5 secondi... è troppo! se invece
provo con esplora risorse sulle stesse immagini lo fa un meno di mezzo
secondo! (anche se cancello il file thumb.db)
Aiutatemiiii!
GRAZIE

Ammesso e non concesso che possa servirti a qualcosa.
La compressione JPG lavora dividendo l'immagine in quadrati di 8x8 pixel.
Prende il primo quadrato in alto a sinistra e lo usa come matrice di
riferimento. Dei quadrati successivi, salva soltanto i pixel diversi alla
matrice di riferimento. Con un livello di dettagli alto, vengono rilevate le
minime differenze, con un livello basso i punti simili vengono considerati
uguali. Se provate a salvare in JPG una immagine con livello minimo, diventa
visibile il reticolo 8x8 usato.
Tornando a noi, si potrebbe quindi leggere solo il pixel con coordinate 1,1
di ogni matrice. Otterresti cosě una immagine di 1/64 piů piccola,
sicuramente piů veloce. Purtroppo, so solo indicarti *cosa* potresti fare,
ma non il *come*.
D
================================
SETTIMA VARIANTE DI ZYMURGY ALLA LEGGE DI MURPHY: Quando piove, diluvia.
================================

...

Perchè non provi direttamente con le api GDI di Windows ?
Dovrebbero essere più veloci
Le funzioni da usare sono SetStretchBltMode e StretchBlt
A queste funzioni devi passare l'handle al DeviceContext, 
che è la proprietà hDC della PictureBox nella quale vuoi disegnare la thumbnail
La documentazione la trovi su MSDN
ciao

 thumbnaol
Uhm... Anch'io provai ad utilizzare quelle api proprio nell'ocx di cui 
sopra... Però il prob è che la qualità dell'immagine disegnata non era un 
granchè...
Antonio Mirarchi 

 e per fare 10 thumbnail ci mette circa 5 secondi... è troppo!
Prova a vedere come si comporta
IrfanView
http://www.irfanview.com/
e' meno di 1 mega e puoi sfrtuttarlo anche da riga di comando
se' e' piu' veloce "taglia la testa al topo e prendi 2 fave con 1 piccione"
e adopera quello
--
Fosco

 
http://www.irfanview.com/
ti ringrazio per il link ma quello che mi serve a me non č un visualizzatore
di immagini... ma devo *dal mio programma* generare le thumbnail perchč poi
ad ognuna di esse associo delle ulteriori informazioni (ID del record della
tabella associata)

 devo fare l'anteprima di immagini che occupano in media 260Kb l'una
e per fare 10 thumbnail ci mette circa 5 secondi... č troppo!
ho fatto ora una prova (a occhio, senza cronometro), e su un normale
centrino gvbox.ocx direi ci abbia messo meno di 15" per 25 jpeg da 1-1.5m,
37m in tutto, mentre al vb faccio fare anche un po' di pagine html.
gvbox non costa molto, e le miniature le puoi parametrizzare. sul sito trovi
una demo.
e' quello che uso per tutti i thumbnails sul mio sito.
http://jcoconsulting.com/
in alternativa puoi usare stretchblt e compagnia. pero' le immagini devi pur
sempre leggerle...
da me (sw > code > img_size) trovi un esempio di giox per leggerle
velocemente.
-- 
hth, ciao, j.
http://www.sundaysw.com

ho trovato un esempio che fa esattamente quello che cercavo e ho risolto il
problema... adesso č velocissimo a caricare le thumbnail! a chi interessasse
mostra l'utilizzo delle librerie GDI+ per il caricamento e il resize di
immagini, il link č:
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=48352&lngWId=1
GRAZIE A TUTTI

 
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=48352&lngWId=1
Azz... Grazie!  Prevedo a breve una nuova versione del mio PicStrip OCX :-)
Antonio Mirarchi