#android #bitmap #renderscript
#Android #растровое изображение #renderscript
Вопрос:
Я использовал ScriptIntrinsicBlur для размытия одного из моих растровых изображений, которое на самом деле заполнено одним СПЛОШНЫМ ЦВЕТОМ. Но эффект размытия, который я получаю, действительно неуместен. Пожалуйста, проверьте изображение ниже. Белая часть на самом деле является растровым изображением, которое я размыл. Растровое изображение фактически заполняет все окно сплошным цветом.
Ниже приведен возможный код для размытия.
static Bitmap blurBackground(Context context, int color, int width, int height){
Log.d("AppLock","RENDER DONE in " System.currentTimeMillis());
Bitmap bitmap = Bitmap.createBitmap(200,200, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawColor(color);
canvas.save();
Bitmap blurredBitmap = bitmap.copy(Bitmap.Config.ARGB_8888,true);
RenderScript renderScript = RenderScript.create(context);
Allocation inputAllocation = Allocation.createFromBitmap(renderScript,blurredBitmap, Allocation.MipmapControl.MIPMAP_FULL
, Allocation.USAGE_SHARED);
Allocation outputAllocation = Allocation.createTyped(renderScript,inputAllocation.getType());
ScriptIntrinsicBlur bluerScript = ScriptIntrinsicBlur.create(renderScript,Element.A_8(renderScript));
bluerScript.setInput(inputAllocation);
bluerScript.setRadius(15f);
bluerScript.forEach(outputAllocation);
outputAllocation.copyTo(blurredBitmap);
bitmap.recycle();
renderScript.destroy();
Log.d("AppLock","RENDER DONE in " System.currentTimeMillis());
return blurredBitmap;
}
Я следовал руководству отсюда, Ссылка на руководство
Я просмотрел множество сообщений здесь, и я знаю, что я должен использовать ARGB_8888 для сценария рендеринга. Также я попытался изменить элемент на Element.U8_4() . Но то, что он делает, это просто возвращает мне растровое изображение размером 200×200 пикселей, и оно фактически заполняет все окно. Я не знаю, что я делаю не так. Помощь была бы высоко оценена.
Комментарии:
1. Я не понимаю. Если вы размываете сплошной цвет, вы получите сплошной цвет. в чем смысл? или я чего-то недопонимаю?
2. @Saehun Sean О, я действительно не понимаю, как работает размытие. Я хотел бы получить аналогичный эффект от изображения по ссылке. imgur.com/5hxYziV
Ответ №1:
Я думаю, что вы имеете в виду как затемнение, так и размытие фона, а не просто размытие сплошного цвета.
Попробуйте следовать этому руководству:http://allegro.tech/2015/08/android-fogger.html
или перейдите прямо в библиотеку:https://github.com/allegro/fogger
Комментарии:
1. Извините, что не поместил здесь подробный код. Я никогда не использовал эту библиотеку, поэтому не могу рассказать вам, как именно это работает. Рад, что это помогло. Если у вас есть время, не могли бы вы любезно опубликовать свой код в качестве ответа, чтобы, даже если ссылка каким-то образом будет уничтожена, ответ был таким же? Хорошая практика для ответа, но я работаю над lol
2. Обязательно опубликую их после завершения. Библиотека выглядит хорошо. Спасибо за ссылку