«Буфер недостаточно велик для пикселей» при попытке использовать copyPixelsFromBuffer для Android

Я сталкиваюсь с ошибкой «Вызвано: java.lang.RuntimeException: буфер недостаточно велик для пикселей» со следующим фрагментом кода:

    String pathName = "/sdcard/test.bmp";
    Bitmap bm1 = BitmapFactory.decodeFile(pathName);

    ShortBuffer buffer = ShortBuffer.allocate(bm1.getWidth()*bm1.getHeight());
    bm1.copyPixelsToBuffer(buffer);

Я думал, что буфер достаточно велик, поскольку он распределяется в соответствии с шириной и высотой растрового изображения. Что может быть причиной проблемы?


person bei    schedule 13.08.2012    source источник
comment
Вы взглянули на это? stackoverflow .com/questions/5626795/   -  person 0gravity    schedule 13.08.2012
comment
Спасибо за информацию. Однако я не пробовал код из этой гиперссылки. Вместо этого я использую ByteBuffer и устанавливаю размер буфера в ширину*длину*4. Я успешно использую copyPixelsToBuffer() и copyPixelsFromBuffer(), а также нормально отображаю изображение.   -  person bei    schedule 13.08.2012
comment
См. этот ответ: stackoverflow.com/a/23769833/1765169 Это решило мои проблемы.   -  person Nj Subedi    schedule 29.11.2014