2015-07-17 4 views
0

мне нужно применить эффект размытия к растровым скачана через universal-imageloader но аварий и в журналах я получил такое сообщение:Как применить эффект размытия к растровому изображению в onLoadingComplete универсального загрузчика изображений?

// 4508-4564/com.sample A/Libc: Fatal сигнал 7 (SIGBUS), код 2 , ошибка addr 0x9c4e9000 in tid 4564 (com.sample) // 07-18 19: 49: 20.019 4508-4570/com.sample A/libc: фатальный сигнал 7 (SIGBUS), код 2, ошибка addr 0x9c4e9000 in tid 4570 (com.sample) // 07-18 19: 49: 20.019 4508-4569/com.sample A/libc: фатальный сигнал 7 (SIGBUS), код 2, ошибка addr 0x9c4e9000 in tid 4569 (com.sample) // 07-18 19: 49: 20.019 4508-4565/com.sample A/libc: фатальный сигнал 7 (SIGBUS), код 2, ошибка addr 0x9c4e9000 in tid 4565 (com.sample)

ImageLoader imageLoader = ImageLoaderInstances.initGeneralImageLoader(); 
imageLoader.loadImage(fileName,new SimpleImageLoadingListener(){ 
    @Override 
    public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
cropedBitmap = Bitmap.createBitmap(loadedImage, 0, 0, loadedImage.getWidth()/2, loadedImage.getHeight()); 
     imageView.setImageBitmap(blurBitmap(cropedBitmap)); 
    } 
}); 



    private Bitmap blurBitmap(Bitmap bitmap) { 
    Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); 
    RenderScript rs = RenderScript.create(getContext()); 
    ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); 
    Allocation allIn = Allocation.createFromBitmap(rs, bitmap); 
    Allocation allOut = Allocation.createFromBitmap(rs, outBitmap); 
    blurScript.setRadius(25.f); 
    blurScript.setInput(allIn); 
    blurScript.forEach(allOut); 
    allOut.copyTo(outBitmap); 
    bitmap.recycle(); 
    rs.destroy(); 
    return outBitmap; 
} 
+0

Можете ли вы попробовать без MIPMAP_FULL? –

+0

Он дает тот же результат. Интересно, что когда я применяю этот метод к растровому изображению из ресурсов проекта, он работает так, как ожидалось, а для растровых изображений, загружаемых с помощью imageloader, это вызывает проблемы. –

+0

Я не знаком с imageloader. Можете ли вы указать нам, что это такое? Возможно ли, что imageloader сохраняет изображение в формате, который мы не поддерживаем? Вы знаете, какой формат изображения для этого растрового изображения (т. Е. RGBA8888, ....)? –

ответ

0

Добавьте протоколирование для проверки, или пошагово с отладчиком, но я думаю, что авария, скорее всего, что происходит на этой линии:

output.copyTo(blurredBitmap); 

blurredBitmap была создана с 1/10 ширины и высоты входного растрового изображения. Это Allocation - это полный размер входного битового массива.

+0

Извините, я не понимаю, что вы говорите. –

+0

Я отредактировал мой код, пожалуйста, посмотрите. –

+0

Что такое 'croppedBitmap' и откуда оно взялось? –

Смежные вопросы