Paint. Crear Una Imagen Desde Cero


Objetivo: 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

Objetivo: 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, 14:07; editado 3 veces

Página 1 de 1


  
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
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1191s (PHP: -16% SQL: 116%)
Consultas SQL: 30 - Debug off - GZIP Activado