Paint. Crear Una Imagen Desde Cero


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

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

Last edited by Shell on Wednesday, 17 April 2019, 14:07; edited 3 times in total

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1376s (PHP: -9% SQL: 109%)
SQL queries: 24 - Debug Off - GZIP Enabled