Newsgroup: it.comp.lang.visual-basic
Titolo: selezione e savepicture

ciao a tutti.
Sto provando a scrivere un tool per la modifica delle immagini (quando
l'ho finito lo documento e lo metto sotto il sito comune), ma non
riesco a capire come posso fare per disegnare un rettangolo di
selezione senza incorporarlo nella picture box.
Per capirci, ora disegno un rettangolo "di selezione" utilizzando la
funzione line con linea "dot", tratteggiata; ma in realtà disegno
sulla picture il rettangolo, cosa che invece non devo fare.
Un'altra cosa: per salvare l'immagine utilizzo la funzione
savepicture, ma me la salva solo in formato bitmap. Io invece vorrei
salvarla in jpg o in gif; devo procurarmi un modulo di compressione e
salvare l'immagine in binario?
Grazie a tutti per l'attenzione
--
Ciao!
Davide

 salvare l'immagine in binario?
In rete puoi trovare DLL (e altro) per la conversione .BMP -> .GIF, .JPG
Attento ai diritti di copyright di Unisys ...
Se pero', per salvare il tuo PictureBox in .GIF, non ti importa di
perdere qualche secondo in piu', puoi usare una mia routine, scritta
interemamente in VB, e reperibile a: 
http://www.flanguasco.org/
Ciao, per ora e fammi sapere.
Franco

 dimostrativo di questa tecnica: se vuoi te lo mando.
Ciao, scusa se mi "intrometto" nel thread, ma avrei un problema proprio con
uno shape rettangolo controllato da mouse all'interno di un picturebox. Se
vuoi ti mando il codice che uso e che mi da un problema: se ridimensiono la
shape verso destra rispetto al suo vertice superiore sinistro, tutto ok, ma
quando lo faccio verso destra funziona solo entro un certo "range"... Il
codice che ho scritto per la shape pone il vertice superiore sinistro del
rettangolo nel punto in cui si fa il click nella pb (nell'evento mousedown
della pb) e poi (nell'evento mousemove) verifica come il mouse si sta
spostando e di conseguenza muove il vertice inferiore destro o superiore
sinistro della shape. Spero di essere stato chiaro (ma sono certo di non
aver raggiunto il mio scopo!). Se mi puoi dare anche solo un'idea per
risolvere il mio problema te ne sarei grato!
Ciao,
- SonicBoom -

 rettangolo nel punto in cui si fa il click nella pb (nell'evento mousedown
Anch' io memorizzo le coordinate del mouse all' evento .MouseDown con:
Private Sub picQuadro_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'
'
    If (Button = vbLeftButton) And (shpZoom.Visible = True) Then
        ' Ho "cliccato" sul PictureBox e
        ' la finestra di zoom deve scomparire:
        shpZoom.Visible = False
'
    ElseIf (Button = vbLeftButton) Then
        ' Qui metto eventuale codice
        ' per la gestione del tasto
        ' sinistro:
        '....
        '....
'
    ElseIf (Button = vbRightButton) Then
        ' Memorizzo la posizione iniziale
        ' della finestra di zoom:
        Z_X1 = X
        Z_Y1 = Y
'
        ' e vi muovo lo "Shape" che
        ' segnera' l' area selezionata:
        shpZoom.Move Z_X1, Z_Y1, 0, 0
        shpZoom.Visible = True
    End If
'
'
'
End Sub
Ma poi, in .MouseMove, eventualmente scambio le
coordinate iniziali:
Private Sub picQuadro_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'
'
    Dim x1!, y1!, Quad!
'
    If Button = vbRightButton Then
        ' Sposto e/o cambio le dimensioni
        ' della finestra di zoom:
        x1 = IIf(X > Z_X1, Z_X1, X)
        y1 = IIf(Y < Z_Y1, Z_Y1, Y)
'
        ' Obbligo la finestra di zoom a
        ' mantenere la scala del PictureBox:
        Quad = DMAX1(Abs(Z_X1 - X), Abs(Z_Y1 - Y))
        shpZoom.Move x1, y1, Quad, Quad
'
        ' Oppure Zoom a scala libera:
        'shpZoom.Move x1, y1, Abs(Z_X1 - X), Abs(Z_Y1 - Y)
'
    Else
        ' Codice di gestione del tasto sinistro:
        '....
        '....
    End If
'
    ...
    ...
Ti mando comunque, sulla mail privata, il progetto completo
con le altre funzioni che qui, per ragioni di spazio, non posso
riportare.
Ciao ed a risentirci.
Franco

Ti ringrazio, sei stato gentilissimo! :)
In mail privata per ulteriori informazioni...
Ciao
- SonicBoom -

Attento ai diritti di copyright di Unisys ...
[cut]
mi potresti dare qualche link? Grazie! 
--
Ciao!
Davide