Estoy trabajando en una aplicación de procesamiento de imágenes para Android que reconoce la notación musical de las imágenes tomadas de las partituras musicales.¿Es posible cortar un mapa de bits en pedazos pequeños sin cargar todo en la memoria?
Intenté cargar toda la imagen en un mapa de bits utilizando el método BitmapFactory.decodeFile(imgPath), pero como mi teléfono no tiene suficiente memoria, recibo un error de "tamaño de pila de VM". Para evitar esto, me gustaría cortar la imagen completa en pedazos más pequeños, pero no estoy seguro de cómo hacer eso.
También vi que era posible reducir el tamaño de la memoria del mapa de bits utilizando el inSampleSize property de la clase BitmapFactory.Option, pero si hago lo que no voy a conseguir la imagen de alta resolución que necesito para la notación musical proceso de reconocimiento.
¿Hay alguna forma de manejar esto sin ir a NDK?
¿Es realmente el archivo codificado como mapa de bits? ¿Puedes comprimir la imagen de origen para que no sea tan grande? Para solo música, no debería necesitar muchos colores ... ¿Qué tan grande en bytes y resolución son las imágenes con las que está trabajando? – Matt
¿El mapa de bits es suyo o del usuario? Si es tuyo, considera almacenarlo previamente cortado y/o en menos colores. Si es del usuario, ¿se trata de un caso límite o una entrada típica? Si es límite, implemente la validación/manejo elegante de errores. Si es típico, reconsidere su elección de plataforma. –
El mapa de bits es del usuario. Él tomará la foto de la cámara móvil. Tengo que usar el mapa de bits más grande posible porque en el proceso de reconocimiento la efectividad proviene de esto. Gracias por editar y lo siento por mi pobre inglés. – OffCS