Android getPixels () posiblemente un error tonto?

Bueno, esto es bastante simple de entender, pero por alguna extraña razón no puedo conseguir que funcione .. He simplificado este ejemplo del código real.

InputStream is = context.getResources().openRawResource(R.raw.someimage); Bitmap bitmap = BitmapFactory.decodeStream(is); try { int[] pixels = new int[32*32]; bitmap.getPixels(pixels, 0, 800, 0, 0, 32, 32); } catch(ArrayIndexOutOfBoundsException ex) { Log.e("testing", "ArrayIndexOutOfBoundsException", ex); } 

¿Por qué debo seguir recibiendo una ArrayIndexOutOfBoundsException? La matriz de píxeles es 32×32 y en la medida en que estoy enterado que estoy usando correctamente getPixels. Las dimensiones de la imagen son 800×800 y estoy tratando de recuperar una sección 32×32. La imagen es un PNG de 32 bits que se informa como ARGB-8888.

¿Algunas ideas? Incluso si estoy siendo un idiota! Estoy a punto de tirar el teclado de la ventana: D

3 Solutions collect form web for “Android getPixels () posiblemente un error tonto?”

Te estás desbordando el búfer de destino porque estás pidiendo un paso de 800 entradas entre filas.

http://developer.android.com/reference/android/graphics/Bitmap.html#getPixels%28int%5B%5D,%20int,%20int,%20int,%20int,%20int,%20int%29

Utilice el ancho de mapa de bits como stride, en su caso 32

  bitmap.getPixels(pixels, 0, 32, 0, 0, 32, 32); 

Cada hilera de fila con 800 causas ur pixelarray para salir de límite

"Estoy a punto de lanzar el teclado de la ventana" funny lol

Usted obtiene la excepción OutOfBounds becacuse stride se aplica a la matriz de píxeles no a la bitmap original, por lo que en su caso, usted está tratando de recuperar 32 * 800 píxeles que no encaja en su matriz.

  • ¿Necesita hacer un cierre adicional en un FileOutputStream al utilizar Bitmap.compress ()?
  • Convertir Bitmap a Byte matriz sin método de compresión en android
  • Cómo enviar el mapa de bits en paquete
  • Combinar imágenes en android
  • Bandas de mapa de bits de Android
  • Android SkImageDecoder :: Factory devuelto null Error
  • Eliminar la imagen de una vista de imagen Android
  • Cambiar el color del mapa de bits
  • Creación de un mapa de bits escalado con createScaledBitmap en Android
  • Cómo crear mapa de bits de GlSurfaceView
  • Cambiar la profundidad de bits de Bitmap
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.