Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: shekelito en Marzo 30, 2010, 08:15:01 pm

Título: Problema al recortar imagen (he probado de muchas formas)
Publicado por: shekelito en Marzo 30, 2010, 08:15:01 pm
Llevo unas semanas lellendos, pero me he registrado ahora misma. Un salu2 :)

He probado de muchas formas para conseguir recortar una imagen (exactamente no es una imagen sino una letra)

He probado con paintpicture pero me arroja un error en el primer argumento (creo que es porque la letra esta puesta en modo ejecucion), tambien probe a mano (ir desplazando pixel a pixel hacia arriba y hacia la izquierda..

Pongo una imagen para aclararlo mas y si alguien sabe como hacerlo o tiene un codigo que me sirva se lo agradeceria mucho.

(http://img59.imageshack.us/img59/5582/leandrow.jpg)

NOTA: x1,x2,y1,y2 las se sacar, osea que se los datos reales
Título: Re:Problema al recortar imagen (he probado de muchas formas)
Publicado por: LeandroA en Marzo 30, 2010, 08:37:35 pm
Te paso un ejemplo y guiando te de esto puedes ver donde esta tu error, seguramnete es porque utilizas Picture1.picture en vez de utilizar Picture1.Image

Código: (Vb) [Seleccionar]
Option Explicit

Private Sub Form_Load()

Dim AnchoDeLaLetra As Long
Dim AltoDeLaLetra As Long


Picture2.AutoRedraw = True  '
Picture2.ScaleMode = vbPixels


With Picture1
    .AutoRedraw = True
    .ScaleMode = vbPixels
    .CurrentX = 20
    .CurrentY = 30
    AnchoDeLaLetra = .TextWidth("A")
    AltoDeLaLetra = .TextHeight("A")
End With

Picture1.Print "A"

Picture2.PaintPicture Picture1.Image, 0, 0, AnchoDeLaLetra, AltoDeLaLetra, 20, 30, AnchoDeLaLetra, AltoDeLaLetra

End Sub

Saludos.
Título: Re:Problema al recortar imagen (he probado de muchas formas)
Publicado por: shekelito en Marzo 30, 2010, 09:13:56 pm
Te paso un ejemplo y guiando te de esto puedes ver donde esta tu error, seguramnete es porque utilizas Picture1.picture en vez de utilizar Picture1.Image

Código: (Vb) [Seleccionar]
Option Explicit

Private Sub Form_Load()

Dim AnchoDeLaLetra As Long
Dim AltoDeLaLetra As Long


Picture2.AutoRedraw = True  '
Picture2.ScaleMode = vbPixels


With Picture1
    .AutoRedraw = True
    .ScaleMode = vbPixels
    .CurrentX = 20
    .CurrentY = 30
    AnchoDeLaLetra = .TextWidth("A")
    AltoDeLaLetra = .TextHeight("A")
End With

Picture1.Print "A"

Picture2.PaintPicture Picture1.Image, 0, 0, AnchoDeLaLetra, AltoDeLaLetra, 20, 30, AnchoDeLaLetra, AltoDeLaLetra

End Sub

Saludos.

Gracias, era eso aunque he tenido que añadir algo mas porque al escribir por ejemplo la A se queda un o dos pixeles por debajo del Top