Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Paint. Crear Una Imagen Desde Cero

Paint. Crear Una Imagen Desde Cero
Artículo
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



 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Miercoles, 17 Abril 2019, 10:02 ]
 


Paint. Crear Una Imagen Desde Cero
Comentarios
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



 
última edición por Shell el Miercoles, 17 Abril 2019, 15:07; editado 3 veces 
Shell - Ver perfil del usuario Enviar mensaje privado  
Shell [ Miercoles, 17 Abril 2019, 15:04 ]
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