05-31-2011 05:46 AM
Estoy desarrollando una aplicación que permite capturar una imagen y procesarla. La aplicación dispone de un UIR que tiene dos canvas, uno permite mostrar la imagen original y el segundo la procesada.
La secuencia de instrucciones a grandes rasgos es:
-imaqcreateimage() //x2 Para la imagen original y para la procesada
do
{
-imaqreadFile() //Leo la imagen que tengo almacenada
-imaqDuplicate() //Duplico la imagen original para mantener la original y tener otra sobre la que modificar
-GetBitmapfromfile()
-CanvasDrawBitmap() //Estas dos funciones para representar la imagen original en el canvas
/////////HILOS DE PROCESAMIENTO DE IMAGEN//////////////
-imaqWriteBMPfile() //Escribo la imagen procesada para poder representarla en el canvas
-Getbitmapfromfile() //Leo la imagen procesada que acabo de almacenar para presentarla en el canvas
-CanvasDrawBitmap()
}
Aunque la aplicación funciona a veces da algunos errores que no entiendo:
-Error 1: A veces en la primera iteración me da error "Divide by zero" en la 2ª GetBitmapfromfile() y se cuelga el programa. Cuando da este error
-Error 2: Si no da el primer error funciona bien hasta la imagen 520 en la cual deja de actualizar los canvas, ambos dos.
No se si se debe a que no borro la imagen ni el bmpID en cada iteracion o porque el metodo que utilizo para representar en el canvas no es el apropiado ya que tengo que guardar la imagen en memoria y luego obtener su bmpID.
06-10-2011 10:42 AM
The second error might be happening because you're running out of memory, probably because you're not freeing the bitmaps. I don't know for sure that you're not freeing them, but I don't see a call to DiscardBitmap in your loop, so I'm guessing that that is the case. You need to free each bitmap that you read from a file, after you display it in the canvas.
I don't have any clue about why the first error happens. Is this error easily reproducible? Specifically, if it happens once for a given .bmp file, will it always happens for that particular .bmp file? If so, could you attach the .bmp file, so that I can try to reproduce it?
Thanks,
Luis