Ver Mensaje Individual
  #3  
Viejo 16/11/14, 11:54:35
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
No puedes convertir una foto de 8 MP directamente a Bitmap, porque te pasará lo que te está pasando, que te quedarás sin memoria.

La máquina virtual de Java sólo gestiona al mismo tiempo entre 30 MB y 50 MB, dependiendo del móvil, si te pasas del tamaño asociado desbordas la memoria y la aplicación se muere. Una foto de 8MP convertida a Bitmap son más de 30 MB.

Soluciones al Bitmap:

1) ¿Para qué quieres mostrar una imagen de 8 MP en el móvil si no se va a apreciar? Comprímela mientras la conviertes a Bitmap.

2) Esta limitación no existe si lo haces con el NDK, así que si aún así quieres mostrar la imagen en 8 MP tendrás que hacerlo con una NativeActivity y programarlo todo con OpenGL. No se si teniendo la imagen direccionada en la memoria de C++ puedes pasarla a un ImageView, pero mucho me temo que en ese caso pasará a ocupar memoria Java y tendrás el mismo problema, pero no se, puedes probarlo.

En cuanto al String en Base64, 3/4 de lo mismo, el String en sí no puede ocupar más de 30 MB. Supongo que la imagen estará en JPEG y no será un RAW puro, en este caso no debería darte problemas, pero si aún así el String con la imagen entera ocupa más del límite de memoria, tendrás que enviarla a "cachos".

Última edición por kriogeN Día 16/11/14 a las 11:57:49.
Responder Con Cita