border

Miembros:
Mensajes:
Temas:
Online:

Ultimo Miembro:

 
 

  #1 (permalink)  
Antiguo 29-03-2005, 08:33:47
Avatar de latortuga
Buena Participación en el Foro
 
Registrado: mar 2005
Posts: 69
latortuga Valoración +2
Predeterminado tratamiento de imágenes de gran tamaño

Saludos miembros del foro, queria plantearles un problema que nos ha surgido. Estamos haciendo una aplicación en la que tratamos con imágenes de gran tamaño, del orden de 16Mb. Para trabajar con ellas las cargamos en un picturebox, pero el problema aparece, cuando consumida la memoria, nos dique que no se puede generar una imagen autoredraw (error 480).
Después de buscar mucho, parece que es un problema del control, y lo que dicen en todos sitios es que hay que reimplementar el metodo paint del control.
Saben algo sobre este tema.
Muchas gracias
Responder Con Cita
  #2 (permalink)  
Antiguo 29-03-2005, 12:38:35
Avatar de Alella
Moderador
 
Registrado: mar 2004
Ubicación: BARCELONA - ESPAÑA
Posts: 967
Alella Valoración +2
Predeterminado Grandes imagenes!!

Hola,q tal.
Creo, q es un problema de liberar de la memoria las imágenes que no necesites en cada momento, sólo trabajando con las imprescindibles.

Liberar la memoria utilizada por los gráficosCuando ya no va a usar una imagen de la propiedad Picture de un formulario, de un cuadro de imagen o de un control Image, establezca la propiedad Picture a Nothing para dejarla vacía:

Set Picture1.Picture = Nothing

Si utiliza la propiedad Image de un cuadro de imagen o de un formulario, Visual Basic crea un mapa de bits AutoRedraw (incluso si la propiedad AutoRedraw de dicho formulario o cuadro de imagen es False). Cuando ha terminado de usar la propiedad Image, puede liberar la memoria utilizada por ese mapa de bits si utiliza el método Cls antes de establecer AutoRedraw a False. Por ejemplo, el código siguiente libera la memoria utilizada por la propiedad Image en un control llamado midib:

midib.AutoRedraw = True ' Activa el mapa de bits
' AutoRedraw.
midib.Cls ' Lo borra.
midib.AutoRedraw = False ' Desactiva el
' mapa de bits.

Espero q te sirva.
__________________
Un saludo.

Alfredo
Barcelona-España
_________________
Visual Basic
Videos Programacion
Foro Programacion
Tutoriales Programacion
Responder Con Cita
  #3 (permalink)  
Antiguo 29-03-2005, 17:11:41
Avatar de latortuga
Buena Participación en el Foro
 
Registrado: mar 2005
Posts: 69
latortuga Valoración +2
Predeterminado respuesta

Esto que me dices de poner el picture igual a nothing y el limpiar la capa image con el cls ya lo hago. He intentado activar y desactivar el autoredraw y no consigo nada, estoy buscando algo sobre como gestionar la memoria para ver si la puedo limpiar o recuperar de alguna forma.
Acepto cualquier sugerencia al respecto.
Muchas gracias por todo
Responder Con Cita
  #4 (permalink)  
Antiguo 01-04-2005, 07:42:41
Avatar de latortuga
Buena Participación en el Foro
 
Registrado: mar 2005
Posts: 69
latortuga Valoración +2
Predeterminado

Continuo trabajando para poder procesar las imágenes en cuestión. Estoy intentando emplear las DirectX para ello. Que opinan al respecto.
Muchas gracias
Responder Con Cita
  #5 (permalink)  
Antiguo 01-04-2005, 18:08:07
Gran Participación en el Foro
 
Registrado: oct 2003
Posts: 192
HurryCrack Valoración +2
Predeterminado

Hola amigo, no se si proponerte esto, pero hay programitas ya hechos que se colocan en el inicio de windows y que gestionan la memoria para la liberar la nó utilizada.

Yo particularmente no los utilizo nunca, pero ... ahí están.

Un saludo.
__________________
Libres nacemos, libres vivimos y libres moriremos.
Responder Con Cita
  #6 (permalink)  
Antiguo 02-04-2005, 09:38:47
Avatar de latortuga
Buena Participación en el Foro
 
Registrado: mar 2005
Posts: 69
latortuga Valoración +2
Predeterminado

Muchas gracias por tu comentario amigo hurry, pero estos programitas no me sirven de nada, ya los he probado, el problema es que el control picturebox emplea la memoria gráfica, un minima parte de la que dispone el sistema, dejando el resto sin utilizar (como ves estoy destripando la api) entonces cuando intentas cargar o trabajar con una imagen (en el caso de que se den las condiciones necesarias para su carga) no puedes hacerlo por que el hDC apunta a una región de la memoria gráfica en la que no puedes meter nada más. Y, encima, el hDC es de sólo lectura, con lo cual no se puede modificar para que apunte a otra región de la memoria convencional.
Alguien sabe como se podría "engañar" al hDC para que apunte a cualquier otra zona de memoria?
Responder Con Cita
  #7 (permalink)  
Antiguo 05-04-2005, 15:37:52
Gran Participación en el Foro
 
Registrado: ene 2005
Ubicación: CF - Argentina
Posts: 191
LOBO_SUELTO_ Valoración +2
Predeterminado DoEvents

Hola
No sé si te sirva pero creo que el doevents lo que hace es que el sistema operativo termine todas las tareas pendientes lo cual supongo libera memoria. Podes buscar mas sobre este tema en este mismo foro.
Suerte
LOBO_SUELTO_
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último Mensaje
Un gran negocio para aprovechar... imported_chiaravel Anuncios & Novedades 0 18-03-2008 22:09:25
Desplegar una gran cantidad de datos gabyha Visual Basic 6.00 5 07-06-2007 20:38:23
GRan Problema alexprog C# .NET 1 20-05-2006 16:33:28
tratamiento de imagenes ss_jesus Visual Basic 6.00 3 01-10-2005 08:58:37
tratamiento de impresiones en tiqueadoras fiscales ???? flprincich Visual Basic 6.00 2 12-09-2005 12:23:19


La franja horaria es GMT. Ahora son las 23:33:47.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0
A vBSkinworks Design

Alojado en el servicio Premium de Masquewebs | Diseño mejorado por MasqueWebs

right