Autor Tema: Problema al recortar imagen (he probado de muchas formas)  (Leído 2865 veces)

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

shekelito

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Problema al recortar imagen (he probado de muchas formas)
« 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.



NOTA: x1,x2,y1,y2 las se sacar, osea que se los datos reales

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Problema al recortar imagen (he probado de muchas formas)
« Respuesta #1 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.

shekelito

  • Bit
  • Mensajes: 2
  • Reputación: +0/-0
    • Ver Perfil
Re:Problema al recortar imagen (he probado de muchas formas)
« Respuesta #2 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