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.
Pero y si hiciera algo como esto:
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
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í:
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:
¿ Saben como puedo hacerlo en un Picture o un Image ?.
¿ En que formato se grabaría ?...¿ png, bmp, jpg ?...
¿ Solo puedo usar svg ?
Saludos