F1 - Cortar una imagen VB.NET

Iniciado por Maurice_Lupin, 18 Noviembre 2012, 16:32 PM

0 Miembros y 1 Visitante están viendo este tema.

Maurice_Lupin

Encontre muchos ejemplos sobre cortar un área rectangular, pero nada sobre un polígono, y antes de hacerlo pixel por pixel, queria consultar, a lo mejor alguien tiene algún link que compartir.

Ejemplo recorte rectangular:

http://www.elguille.info/NET/dotnet/trocear_imagen.htm


Saludos.
Un error se comete al equivocarse.

Keyen Night

#1
Todo lo imaginable es posible con el GDI de .Net ;), mira este ejemplo:

Un proyecto Windows Forms vació, carga una imagen, crea un objeto GraphicPath y agrega los puntos que conforman el Polígono, obtiene la región que ocupa dicho Polígono, luego recorre cada Rectángulo que conforma la región pintando cada parte de la Imagen con ayuda de la función Offset que mueve los ejes hacia el Origen deseado (El punto desde donde se comenzara a Dibujar la Imagen) y el Destino (El punto desde donde se cortara el polígono en la imagen).

Código (vb.net) [Seleccionar]
Imports System.Drawing.Drawing2D

Public Class Form1

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint

        Dim Imagen As Image = Image.FromFile("C:\Ejemplo.JPG")

        Dim Forma As New GraphicsPath

        Forma.AddPolygon(New PointF() {New PointF(10, 20), New PointF(250, 35), New PointF(150, 200)})

        Dim Poligono As New Region(Forma)

        Dim Origen As New Point(10, 10), Destino As New Point(20, 20)
        Dim RectanguloOrigen As RectangleF, RectanguloDestino As RectangleF

        For Each Rectangulo As RectangleF In Poligono.GetRegionScans(New Matrix)
            RectanguloOrigen = Rectangulo : RectanguloOrigen.Offset(Origen)
            RectanguloDestino = Rectangulo : RectanguloDestino.Offset(Destino)
            e.Graphics.DrawImage(Imagen, RectanguloOrigen, RectanguloDestino, GraphicsUnit.Pixel)
        Next

    End Sub

End Class
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...