Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado 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
-
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
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.
-
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
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