Newsgroup: it.comp.lang.visual-basic
Titolo: Info su Resize Image....

Ciao a tutti.....
premetto che sono un pò NeoFita per quanto riguarda VB. Comunque cerco di
cavarmela.
Ho fatto un programmino che mi permetta di avere un anteprima di più
immagini contenuti in una cartella.
E fino qui tutto Ok.
Il problema a cui non riesco ad arrivare a capo è poter visualizzare
l'immagine con effetto "strech" senza che si allarghi troppo
mi spiego meglio... ho utilizzato il classico controllino Image mettendo la
proprietà strech a True.
 quando visualizzo delle foto però le vedo troppo "Strecciate" ;-P.... tipo
un viso normale lo vedo bello cicciotto....
Ho quindi pensato di modificare le proprietà altezza , larghezza tipo:
Image1.Height = ScaleY(Image1.Height, da altezza , a altezza) * 2
Image1.Width = ScaleX(Image2.Width, da larghezza, a larghezza) * 2
ilin questo modo alcune immagini vengono visualizzate bene però quelle
ancora troppo grandi
sono fuori dal box image da me definito....
Teoricamente dovrei fare un controllino che "se immagine ancora grande
allora rimpicciolisci ancora" o una cosa del genere...
Non c'è un modo per visualizzare in un determinato Box Image di una certa
altezza / larghezza un immagine che non sia troppo allargata o allungata?
Insomma ...avere un giusto Resize
Possibilmente che non sia un OCX o che non sia costretto a cambiare il mio
"image" con una "PictureBox"
Mi date qualche dritta? nel sito comune c'è qualche esempio??
Ho già provato scaricare delgi esempi ma non c'è nulla che fa al caso mio...
Forse in google non ho utilizzato le giuste parole chiave.....
Grazie a chi vuole dare un suggerimento ad un povero Neofita....
Saluti

 si allarghi troppo
Trova le dimensioni originali dell'immagine, diciamo oW e oH
Decidi la dimensione della tua anteprima nell'ipotesi che sia quadrata,
diciamo K
Calcola oW / oH= r ovvero il rapporto delle dimensioni.
-se r>1 l'immagine è più larga che alta, quindi va ridimensionata in base
alla larghezza, quindi usa la proporzione oW:oH=K:nH
quindi trovi nH che è l'altezza dell'anteprima mentra la larghezza rimane K.
-se r<1 l'immagine è più alta che larga, quindi va ridimensionata in base
all'altezza, quindi usa la proporzione oW:oH=nW:K
quindi trovi nW che è la larghezza dell'anteprima mentra l'altezza è K.
-se r=1 sia nW che nH l'immagine è già quadrata quindi entrambe le
dimensioni dell'anteprima vanno lasciate = K
termoPilucco

Grazie TermoPilucco! Bella Idea.....
Farò dei tentativi e vediamo cosa riesco a tirarne fuori...
Ieri alla fine avevo provato a verificare ogni immagine in base alla
dimensione del Box Image e avevo fatto in modo tale che quelle troppo grandi
venissero ridimensionate come il box...
In pratica avevo risolto il problema in parte perchè quelle troppo grandi
venivano rimpicciolite ma sempre troppo "strecciate".....
Ho sbagliao proprio l'approccio.....
Grazie ancora!
Saluti...

Ciao TermoPilucco...!
(speriamo che tu veda questo msg)
Ho provato a seguire il tuo suggerimento ma.....come già ti avevo detto sono
un Neofita in VB e mi sa.......pure scarso in matematica!!! ;-P
No, vabbè.....non ho capito un paio di cose...allora:
- io mi trovo le dimensione dell'immagine originale...Ok
- poi devo decidere la dimensione K della mia anteprima...mi hai detto ad
esempio un quadrato....
- mettiamo  caso che io imposto come Height = 1000 e come Width = 1000
1) quindi K = 1000 * 4   oppure solo ad un lato ??? (immagino la prima
sempre che io non abbia capito proprio nulla :-\ )
- dopodichè mi trovo il rapporto...ok
- poi verifico se il rapporto e < o > di 1.....e in base a cosa viene eseguo
una proporzione....Ok
tale proporzione mi darà o nH oppre nW......
2) mettiamo caso che trovo nH...........  lo devo sotituire
all'image.picture.height e non all'image.height... giusto? se no a che mi
serve???
Grazie ancora e scusa la mia GROSSA ignoranza....... in TUTTO!! :-\
Salut.
PS: se hai bisogno ti posto il codice che ho scritto......

 Grazie ancora e scusa la mia GROSSA ignoranza....... in TUTTO!! :-\
Non preoccuparti:  un mio ex collega laureato nella mia stessa università
(con tanto di esami di Analisi, Geometria e Algebra) ci ha messo cinque
giorni a scrivere il tuo stesso programma :)
Non credo che sia colpa dell'università nel suo caso :)
termoPilucco

Termopilucco grazie infinite...... mentre ti scrivo ho appena terminato le
prove e ...... FUNZIONA ALLA GRANDE!!
Grazie....., Grazie di cuore....
Da una parte sono contento che funziona ma dall'altra sono arrabbiatissimo
perchè non sono riuscito ad arrivarci da solo.....
Le prime volte effettivamente , facendo le prove in debug, quando assegnavo
stupidamente questo:
imageAnteprima.height=nH
imageAnteprima.width=nW
avevo questo risultato:  se trovavo nH,   andava a finire che nW rimaneva
vuoto (a zero).
Difatti pensavo che se trovavo nH al posto di nW  ci dovevo mettere
oW.....ma avrei sbagliato ugualmente...
Che StupiDonzo......! O__0
GRAZIe,,,
Saluti!