Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Brochas. Pinceles. Errores Tipicos Al Dibujar Una Imagen En Un DrawingArea
Autor Mensaje
Responder citando   Descargar mensaje 
Mensaje Brochas. Pinceles. Errores Tipicos Al Dibujar Una Imagen En Un DrawingArea 
 
Buenas!.

En este mensaje muestro dos errores conocidos al dibujar una imagen con una brocha en el componente DrawingArea.

Código Común:
Private hImage As Image

Public Sub Form_Open()
  
  hImage = Image.Load("hat-640.jpg")
  
  'Ajustamos el tamaño del formulario al del lienzo  
  With Me
    Me.W = Lienzo.W
    Me.H = Lienzo.H
  End With
  
End
 


Ejemplo1:

Public Sub DibujarImagen1()
  
  'La brocha de la imagen es mayor que el tamaño del lienzo
  
  Dim x, y, w, h As Float  
  Dim hbrush As PaintBrush
  
  h = Lienzo.h
  w = Lienzo.W
  
  hbrush = Paint.Image(hImage)      
  Paint.Brush = hbrush
  'El rectangulo dibujado es del tamaño del lienzo
  Paint.Rectangle(x, y, w, h)  
  Paint.Fill
  
End
 


Se muestra:

 pincelmayorquelienzo

Ejemplo2:
Public Sub DibujarImagen2()
  
  'La brocha de la imagen es más pequeña que el tamño del lienzo
  
  Dim x, y, w, h As Float  
  Dim hbrush As PaintBrush
  
  h = Lienzo.h
  w = Lienzo.W
    
  hbrush = Paint.Image(hImage)    
  'Vamos a hacer que la escala de la brocha de la imagen con la que vamos a pintar sea 1/4 de la original
  hbrush.Scale(0.25, 0.25)  
  Paint.Brush = hbrush
  'El rectangulo dibujado es del tamaño del lienzo
  Paint.Rectangle(x, y, w, h)  
  Paint.Fill
  
End

Public Sub Lienzo_Draw()
  
 'DibujarImagen1
  DibujarImagen2
  
End
 


Se muestra:
 pincelmenorquelienzo

Ejemplo de como mostrarla correctamente:

Private hImage As Image

Public Sub Form_Open()
  
  Me.Title = "Mostrando Correctamente la imagen"
  
  hImage = Image.Load("hat-640.jpg")
  
  'Ajustamos el lienzo al tamaño de la imagen
  With Lienzo
    .W = hImage.W
    .H = hImage.H
  End With
  
  'Ajustamos el tamaño del formulario al del lienzo  
  With Me
    Me.W = Lienzo.W
    Me.H = Lienzo.H
  End With
  
End

Public Sub DibujarImagen()
  
  Dim x, y, w, h As Float  
  Dim hbrush As PaintBrush
  
  h = Lienzo.h
  w = Lienzo.W
  
  hbrush = Paint.Image(hImage)    
  
  Paint.Brush = hbrush
  'El rectangulo dibujado es del tamaño del lienzo
  Paint.Rectangle(x, y, w, h)  
  Paint.Fill
  
End

Public Sub Lienzo_Draw()
  
  DibujarImagen
  
End
 


Ahora si queremos que nuestra imagen se ajuste al formulario podemos hacer:

Private hImage As Image

Public Sub Form_Open()
  
  Me.Title = "Imagen se ajusta al formulario"
  
  'Formulario al tamaño del Lienzo
  With Me
    .W = Lienzo.W
    .H = Lienzo.H  
  End With
  
End

Public Sub DibujarImagen()
  
  Dim x, y, w, h As Float  
  Dim hbrush As PaintBrush
  
  ' Se muestran las coordenadas y tamaños para referencia
  
  h = Lienzo.H
  w = Lienzo.W
  
  hImage = Image.Load("hat-640.jpg")
  hbrush = Paint.Image(hImage)  
  hbrush.Translate(x, y)
  hbrush.Scale(w / hImage.w, h / hImage.h)    
  Paint.Brush = hbrush
  Paint.Rectangle(x, y, w, h)  
  Paint.Fill
  
End

Public Sub Lienzo_Draw()
  
  DibujarImagen
  
End

Public Sub Form_Resize()
  
  'Lienzo al tamaño del Formulario
  With Lienzo
    .W = Me.w
    .H = Me.H
  End With
  
End
 


Y ahora el ejemplo para descargar.

Saludos
 




===================
Gambas Básico
“Lo mejor de los booleanos es que si te equivocas estás a un solo bit de la solución correcta. Anónimo."
 
última edición por Shell el Domingo, 06 Agosto 2017, 01:41; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario