Oppure

Loading
16/04/09 18:05
swet
Ciao a tutti, voglio scrivere un programma che effettui il ritaglio dell' immagine data (contenuta in una picturebox) in base all' area selezionata. L' idea sarebbe selezionare la porzione, copiare l' area in un' altro controllo e poi salvare l' immagine salvata.
Come faccio a copiare solo la parte selezionata? Potete darmi anche qualche riferimento ovviamente il codice lo scriverò da solo!

grazie
aaa
17/04/09 18:20
Il Totem
    Public Function CutImage(ByVal Original As Image, ByVal CutArea As RectangleF) As Image
        Dim Result As New Bitmap(CInt(CutArea.Width), CInt(CutArea.Height))
        Dim G As Graphics = Graphics.FromImage(Result)
        G.DrawImage(Original, Original.GetBounds(GraphicsUnit.Pixel), CutArea, GraphicsUnit.Pixel)
        G.Dispose()
        Return Result
    End Function
aaa
18/04/09 13:04
swet
Ciao grazie per la funzione, usando questo codice
Private Sub PictureBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragEnter
        PictureBox2.Image = CutImage(PictureBox1.Image, New Rectangle(0, 0, 0, 0))

    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim filename As New Bitmap("C:\Documents and Settings\All Users\Documenti\Immagini\Immagini campione\Colline azzurre.jpg")
        PictureBox1.Image = filename
    End Sub


la picturebox2 è vuota. Sbaglio ad usare l' evento drag_enter? Al posto degli zeri in new rectangle cosa devo mettere? grazie
aaa
18/04/09 14:14
ruggy94
Postato originariamente da Il Totem:

    Public Function CutImage(ByVal Original As Image, ByVal CutArea As RectangleF) As Image
        Dim Result As New Bitmap(CInt(CutArea.Width), CInt(CutArea.Height))
        Dim G As Graphics = Graphics.FromImage(Result)
        G.DrawImage(Original, Original.GetBounds(GraphicsUnit.Pixel), CutArea, GraphicsUnit.Pixel)
        G.Dispose()
        Return Result
    End Function

Questa funzione che ti ha scritto Totem richiede come secondo parametro un RectangleF, che deve rappresentare l'area dell'immagine da selezionare, quindi quando dichiari un New RectangleF(x,y,w,h) al posto delle lettere devi mettere come parametri le coordinate X e Y del punto in alto a sinistra e poi la lunghezza e l'altezza del rettangolo
aaa