Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Paint. Crear Una Imagen Desde Cero
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Paint. Crear Una Imagen Desde Cero 
 
Buenos días!.

Estoy acostumbrado a crear una imagen dentro de un DrawingArea.
Pero, ¿ y si yo quiero crear una imagen sin dibujarla en el DrawingArea ?

Con Paint.Begin le podemos decir en que vamos a crear nuestro dibujo.

- Image
- Picture
- DrawinArea

Hasta ahora no sé como hacerlo con el tipo Image y el tipo Picture.

La forma tradicional, dibujar en un DrawingArea.

Public Sub CrearCirculo()
    
  Paint.Brush = Paint.Color(Color.red)
  Paint.Arc(Pizarra.w / 2, Pizarra.H / 2, 80)
  Paint.Fill
  
End

Public Sub Pizarra_Draw()
  
  CrearCirculo

End


Pero y si hiciera algo como esto:

Private unaimagen As New Picture

Public Sub Form_Open()
  
  CrearCirculo
  
End

Public Sub CrearCirculo()
  
  Paint.Begin(unaimagen)
  Paint.Brush = Paint.Color(Color.red)
  Paint.Arc(Pizarra.w / 2, Pizarra.H / 2, 80)
  Paint.Fill
  Paint.End  
  
End
 


De principio. No se esta grabando  a ningún lado.
No pretendo tampoco capturar el área de dibujo del DrawingArea.
De esa forma da "imagen incorrecta" o algo por el estilo.

¿ Donde están las dimensiones ?.    

Bien. Algunos de los ejemplos lo que hace es cargar un archivo, lo retoca y luego lo graba.
Pero yo quiero crearlo de cero y grabarlo ya sea bien en un archivo o almacenarlo en una variable de un tipo imagen.  

Hasta ahora solo he podido hacer con el formato svg.

Public Sub Form_Open()
  
  CrearUNaImagen()
  
End

Public Sub CrearUNaImagen()
  
  Dim hFile As File
  Dim hSvgImg As New SvgImage
  
  If Exist(User.Home &/ "Imagem.svg") Then Kill User.Home &/ "Imagem.svg"
  hFile = Open "/tmp/SvgImg.svg" For Read Write Create
  Print #hFile, "<svg>"
  Print #hFile, "</svg>"
  hFile.Close()
  
  hSvgImg = hSvgImg.Load("/tmp/SvgImg.svg")
  hSvgImg.Width = 120
  hSvgImg.Height = 120
  Paint.Begin(hSvgImg)
  Paint.Brush = Paint.Color(Color.Red)
  Paint.Arc(60, 60, 50)
  Paint.Fill
  Paint.End
  hSvgImg.Save(User.Home &/ "Imagem.svg")
  
End
 


De principio me encuentro que la imagen del circulo no esta centrada.
Pss..y parece que el archivo no esta cerrado...hay veces que administrador de archivo se queda pensando...
( Que raro ).  

Fijaros, queda así:

 imagencreada

Y como veís en el código, la imagen tiene sus dimensiones a 120 x 120 y el centro del ciculo es de 60, 60 con un radio de 50.
Y la aplicación que nos muestra la imagen. Nos esta diciendo que la imagen tiene 150 x 150!..

Según nos dice Benoit.

Citar:

The SVG support of Qt has many bugs for years. I don't know if it will be better with Qt5.

 
¿ Saben como puedo hacerlo en un Picture o un Image ?.
¿ En que formato se grabaría ?...¿ png, bmp, jpg ?...   
¿ Solo puedo usar svg ?  

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Paint. Crear Una Imagen Desde Cero 
 
Pues este lo hice con Image.

Private unaimagen As Image

Public Sub Form_Open()
  
  unaimagen = New Image(Pizarra.W, Pizarra.H, Color.green, 0)
  CrearIimagen()
  
End

Public Sub CrearIimagen()
  
  Paint.Begin(unaimagen)
  Paint.Brush = Paint.Color(Color.red)
  Paint.Arc(Pizarra.W / 2, Pizarra.H / 2, 80)
  Paint.Fill
  Paint.End  
  unaimagen.Save(User.home &/ "Temporales/pruebaimagen.png")
  
End
 


Tomé como referencia la medida del DrawingArea, pero es indiferente.
Os puse un color que os gusta mucho de fondo.  
( Fijaros el efecto que hace al scrollear el mensaje ).  

 pruebaimagen

Podía haber puesto de extensión jpg, pero usé png, ¿ será indiferente ?.  

La instrucción de grabar la imagen tiene algún argumento más. como  imagen de calidad.

Pues si que es raro el efecto que hace..
Solo tenéis el scroll vertical...mmm..si queréis el horizontal tenéis que mover el monitor para los lados...pffffff...

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
última edición por Shell el Miercoles, 17 Abril 2019, 15:07; editado 3 veces 
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
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Problemas Al Capturar Imagen Desde Webcam CanihoJR General 3 Lunes, 25 Enero 2010, 21:41 Ver último mensaje
skhaliburg
No hay nuevos mensajes Capturar Imagen Desde Webcam frederick General 1 Miercoles, 08 Febrero 2012, 19:28 Ver último mensaje
jguardon
No hay nuevos mensajes Mostrar Imagen Desde Web datobinario Controles/Librerías/Componentes 4 Viernes, 06 Septiembre 2013, 13:04 Ver último mensaje
vuott
No hay nuevos mensajes Programacion En Gambas Desde Cero marciko General 7 Miercoles, 31 May 2017, 23:43 Ver último mensaje
tincho
 

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