Re: Guardar El Contenido De Un DrawingArea
Hola guadafan:
Citar:
no sé cómo guardar el resultado dibujado en el drawingarea.
Hay dos métodos para hacerlo (que yo sepa):
1) Directo: Usando desktop.screenshot(), que es como una captura de pantalla.
2) Indirecto: Todo lo que tengas que dibujar en el drawingarea, lo dibujas en un objeto "image", y lo guardas.
Para ampliar el código que nos has pasado, seria asi:
a) Todo lo que tienes definido en DrawingArea1_Draw(), lo pasas a una nueva subrutina "dibuja()".
Y desde DrawingArea1_Draw() , llamas dibuja(). Esto lo hago para que puedas reusar el código...
b) Creas un botón o defines algun evento del DrawingArea1, para llamar a una nueva subrutina.
Esta subrutina, se encarga de cargar la imagen, crear una imagen "transparente", con las dimensiones que tenga la imagen de fondo, y usarla como "device" (dispositivo) donde dibujará.
Public Sub ButtonImprimir_Click()
Dim itmp As New Image 'imagen temporal para conocer tamaño
Dim i As New Image 'imagen donde vamos a pintar
Itmp = image.Load("fondo.jpg")
i = image.Load("transparencia.png") 'imagen trasparente pequeña
i = i.Stretch(itmp.w, itmp.h) 'redimensiona la imagen transparente, para que tenga el mismo tamaño que el "fondo.jpg"
Paint.Begin(i) 'el dispositivo (device) donde va a dibujar es el objeto i
dibuja() 'hace todo el dibujo
Paint.Stroke 'lo termina de dibujar
Paint.End
'guardamos el resultado....
i.Save(User.Home & "/resultado.png")
Message.Info("Guardada en..." & User.home & "/resultado.png")
End
El resultado seria este:
Descripción: |
Añadiendo boton para que guarde el dibujo generado |
Descargar |
Nombre del archivo: |
marquitos-0.0.3.tar.gz |
Tamaño: |
143.47 KB |
Descargado: |
28 veces |
Descripción: |
Añadiendo boton para que guarde el dibujo generado |
Descargar |
Nombre del archivo: |
marquitos-0.0.3.tar.gz |
Tamaño: |
143.47 KB |
Descargado: |
28 veces |
Descripción: |
Añadiendo boton para que guarde el dibujo generado |
Descargar |
Nombre del archivo: |
marquitos-0.0.3.tar.gz |
Tamaño: |
143.47 KB |
Descargado: |
28 veces |