26/11/12 9:25
Snogar
Che ne dici invece di utilizzare l'oggetto Graphics e il metodo Xor della region selezionata?
aaa
26/11/12 14:02
Uno sciame di API
Ho risolto!
Se a qualcuno potesse servire ecco il codice che ho usato (ho creato una funzione):
Function TagliaImmagine(ByVal immagine As Bitmap, ByVal punti As List(Of Point))
Dim g As Graphics
Dim perimetro As System.Drawing.Drawing2D.GraphicsPath
Dim res As Bitmap
Dim tmpimg As Bitmap
If punti.Count >= 1 Then
perimetro = New System.Drawing.Drawing2D.GraphicsPath()
perimetro.AddPolygon(punti.ToArray)
tmpimg = New Bitmap(immagine)
g = Graphics.FromImage(tmpimg)
g.ExcludeClip(New Region(perimetro))
g.Clear(Color.Transparent)
g.Dispose()
Dim rect As RectangleF = perimetro.GetBounds()
res = New Bitmap(rect.Size.ToSize.Width, rect.Size.ToSize.Height)
g = Graphics.FromImage(res)
g.DrawImage(tmpimg, New Rectangle(New Point(0 - rect.Left.ToString, 0 - rect.Top.ToString), tmpimg.Size))
g.Dispose()
Else
res = immagine
End If
Return res
End Function
Ultima modifica effettuata da Uno sciame di API 26/11/12 16:33
aaa