Android procesamiento de imágenes de alta resolución

De los experimentos y de la lectura de otros puestos como éste parece que es difícil procesar imágenes de alta resolución en Android porque hay un límite en la cantidad de memoria que la VM permitirá asignar.

Cargar imágenes de una cámara de 8MP toma alrededor de 20 MB de memoria.

Entiendo que la solución fácil es bajar la imagen al cargarla (BitmapFactory ofrece tal opción) pero todavía me gustaría procesar la imagen en resolución completa: la cámara graba 8MP, por qué usaría sólo 4MP y reduciría la calidad.

¿Alguien sabe las buenas soluciones para eso?

2 cosas:

  1. Revisa la galería en Honeycomb. Hace esta representación basada en mosaico. Puede acercar una imagen y ver que la parte actual es más alta que las otras partes. Si te desplazas a tu alrededor lo ves renderizado.

  2. Cuando se utiliza código nativo (NDK) no hay un límite de recursos. Así que usted podría tratar de cargar todos los datos nativos y de alguna manera obtener partes de ella con JNI, pero dudo que sea mejor que la galería de honeycom.

En un entorno con recursos limitados, creo que su única solución es dividir y conquistar: por ejemplo, cache / tile (como en: tiles)

En lugar de cargar y procesar la imagen de una vez, cargas / ahorras trozos manejables de la imagen desde un archivo de datos sin procesar para hacer tu procesamiento. Esto no es trivial y podría ser realmente complejo dependiendo del tipo de procesamiento que desee hacer, pero es la única manera si no desea incluir en la calidad de imagen.

De hecho, esto es difícil. Pero en caso de que la imagen esté en algún formato ráster continuo, puede mmap (vea java.nio.ByteBuffer) – de esta manera obtendrá un buffer de bytes sin asignarlo.

  • Objeto de fecha SimpleDateFormat no analiza correctamente la cadena de hora en el entorno Java (Android)
  • Cómo implementar efectos de distorsión de imagen en Android
  • ¿Cómo obtener mejoras de rendimiento mediante el procesamiento para Android?
  • Resultado del procesamiento de la señal de audio con el algoritmo de Goertzel
  • Android: escala y comprime un mapa de bits
  • Cómo optimizar una clase de procesamiento de imágenes
  • Android tutorial de procesamiento de imágenes?
  • Android convertir Imagen de ImageReader a YCbCr_420_SP (NV21) matriz de bytes utilizando script de render?
  • Procesamiento de imágenes en Android: ¿qué bibliotecas puedo usar?
  • Android - convertir el array byte rgb_565 en array argb o rgb
  • Binarizar imagen en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.