Ciao! volevo chiedervi se è possibile creare le funzioni zoom e pan per un immagine contenuta in una picture box.![]()
Ciao! volevo chiedervi se è possibile creare le funzioni zoom e pan per un immagine contenuta in una picture box.![]()
Nessuno sa dirmi se zoom e pan si possono fare con Vb6? Ed invece con Vbnet è possibile? Ho già inserito le barre di scorrimento per scorrere tutta l'immagine ma certo sarebbe un altro effetto se fosse possibile muovere l'immagine con la "manina" e zoomarla con la lente di ingrandimento... Vi prego datemi uno spunto!![]()
VB6 non ha queste funzionalita' native.
Devi scrivere tu il codice e non e' proprio codice da scrivere per chi inizia ...
Quindi non si tratta neanche di un codice che può essere trovato in giro già pronto? Cioè intendo dire: deve essere sempre adattato al caso specifico oppure è un codice standard sempre uguale a se stesso che basta inserire in una routine?
Per caso in vb.net si tratta di funzionalità native?![]()
Codice che implementa zoom e pan di immagini si puo' trovare sicuramente su internet sia per VB6 che per .NET.
Ma non posso sapere se ti andra' bene o dovra' comunque essere modificato.
Ciao, si può fare tranquillamente, solo che il codice te lo devi scrivere..non c'è niente di pronto.
Ti faccio un esempio per lo zoom.
In un form metti due pictureBox, la seconda la chiami picBuff (la prima picture1 imposta la proprietà autoredraw=True), poi metti un button e una textboxcodice:Private Sub Zoom(percZoom As Double) Picture1.Cls Picture1.PaintPicture picBuff.Picture, 0, 0, picBuff.Picture.Width * (percZoom / 100), picBuff.Picture.Height * (percZoom / 100) End Sub Private Sub Command1_Click() Zoom CDbl(Text1.Text) End Sub Private Sub Form_Load() picBuff.Picture = LoadPicture("c:\tuaImmagine.jpg") Picture1.PaintPicture picBuff.Picture, 0, 0, picBuff.Picture.Width, picBuff.Picture.Height End Sub
Nella TextBox metti la percentuale che vuoi per l'immagine e poi clicchi sul button...
Anche per il pan non è difficile, solo che bisogna fare qualche controllo in più e fare in modo di eliminare lo sfarfallio dell'immagine quando la si muove, tramite api.
Questa parte richiede un po' più codice, e ora mi cala la palpebra..![]()
Comunque devi giocare con l'evento mouseMove..e altre cosucce.. intanto prova.. poi magari vedo se ti trovo qualche link dove prendere spunto..
![]()
Jupy
Il meccanismo funziona benissimo, ti ringrazio molto.
E' chiaro che devo capirne il funzionamento per poter fare le modifiche necessarie al mio caso e su questo forse ha ragione Oregon, non so se sono in grado di farlo. Per esempio vorrei che il pulsante facesse automaticamente ogni volta una percentuale di ingrandimento senza bisogno di scriverla su di una text box e poi che fosse il click del mouse ad agire sull'immagine e non un pulsante. Comunque ho già molti elementi per cominciare a provare.![]()
Ciao, effettivamente le tue conoscenze sono minime.. dovresti comunque leggerti bene qualche manuale e mettere in pratica gli esempi che ti propongono.. anche se, ti possono sembrare facili..ti serviranno sicuramente per capirne il meccanismo. Capisco che la voglia di fare qualcosa di più "interessante" è tanta.. ma devi andare per gradi.
Per lo zoom con i pulsanti potresti mettere due pulsanti sul form, uno per zommare avanti e uno indietro.
Cliccando su avanti, prima incrementi il valore della textBox (diciamo multipli di 10) e poi richiami la funzione per zoummare.
Lo stesso per zoomare indietro, prima diminuisci il valore della textBox e poi richiami la funzione per lo zoom.
Mentre se vuoi usare il mouse, lavora con gli eventi MouseUp e controlla il valore del parametro Botton (1=tasto sinistro, 2=tasto destro) e usi la tecnica per i pulsanti che ti ho appena detto.
In pratica quando clicchi con il tasto sinistro aumenti il valore della textBox e poi richiami la funzione Zoom, mentre se clicchi con iltasto destro diminiusci il valore della textBxo e poi richiami la funzione Zoom..
Sembra complicato.. ma se procedi per piccoli passi vedrai che ci arriverai..
![]()
Jupy
Hai qualche sugerimento anche per il pan di immagine?![]()