Как изменить радиус размытия при просмотре изображения - PullRequest
1 голос
/ 08 апреля 2019

Я добавляю эту зависимость в build.gradle, чтобы размыть мой imageView:

dependencies {
    implementation 'com.jackandphantom.android:blurimage:1.2.0'
}

И следующий код в моем MainActivity.java:

    bgImage = (ImageView) findViewById(R.id.imageView);
   Bitmap bitmap = BlurImage.with(getApplicationContext()).load(R.drawable.profilbackground).intensity(25).getImageBlur();
    bgImage.setImageBitmap(bitmap);

проблема заключается в следующемпросто размытие до 25 радиуса, а я хочу, чтобы оно было до 50 или 100. Итак, как я могу изменить радиус размытия моего изображения?Пожалуйста, дайте мне способ, который делает это.

Ответы [ 3 ]

4 голосов
/ 08 апреля 2019

Согласно документации написано

В этой библиотеке есть разные методы, которые вы можете использовать для сохранения размытия изображения.

   BlurImage.with(getApplicationContext()).load(R.drawable.myImage).intensity(20).Async(true).into(imageView);

OR

BlurImage.with(getApplicationContext()).load(bitmap_Image).intensity(20).Async(true).into(imageView);

метод (интенсивность): - интенсивность (значение int)

{Увеличение размытия и ограничение значения в диапазоне от 0 до 25}

Максимальный лимит составляет 25, если вы хотите изменить значение, вам нужно его разветвить и поработать над этой функцией самостоятельно или попросить автора библиотеки.

Я расскажу вам обойти это,

  • Уменьшить изображение в 7
  • Запустите размытие еще раз с 25
  • Уменьшить изображение до исходного размера
0 голосов
/ 08 апреля 2019

реализация 'com.squareup.picasso: picasso: 2.5.2'

<ImageView
    android:id="@+id/iv_profilepic"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
     android:src="@mipmap/ic_launcher"/>

Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {        imageViewBackground.setImageBitmap(BlurImage.fastblur(bitmap, 1f, BLUR_PRECENTAGE));
    }
    @Override
    public void onBitmapFailed(Drawable errorDrawable) {
        imageViewBackground.setImageResource(R.mipmap.ic_launcher);
    }
    @Override
    public void onPrepareLoad(Drawable placeHolderDrawable) {

    }
};
0 голосов
/ 08 апреля 2019

Простая реализация Blur с использованием Glide:

dependencies {

       implementation 'com.github.bumptech.glide:glide:3.7.0'
}

В вашей деятельности / фрагмент

Glide.with(getActivity()).load(loginDetails.getUserdetail().getImage()).asBitmap().into(new SimpleTarget<Bitmap>() {
            @Override
            public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
                profileImageView.setImageBitmap(BlurImageView.blur(resource));
            }
        });

BlurImageView.java

public class BlurImageView {
    private static final float BITMAP_SCALE = 0.4f;
    private static final float BLUR_RADIUS = 25f;

    public static Bitmap blur(Bitmap bitmap) {
        Bitmap u8_4Bitmap;
        if (bitmap.getConfig() == Bitmap.Config.ARGB_8888) {
            u8_4Bitmap = bitmap;
        } else {
            u8_4Bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
        }
        int width = Math.round(u8_4Bitmap.getWidth() * BITMAP_SCALE);
        int height = Math.round(u8_4Bitmap.getHeight() * BITMAP_SCALE);
        Bitmap inputBitmap = Bitmap.createScaledBitmap(u8_4Bitmap, width, height, false);
        Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap);
        RenderScript rs = RenderScript.create(UpasargaApplication.getAppContext());
        ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
        Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap);
        Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap);
        theIntrinsic.setRadius(BLUR_RADIUS);
        theIntrinsic.setInput(tmpIn);
        theIntrinsic.forEach(tmpOut);
        tmpOut.copyTo(outputBitmap);
        return outputBitmap;

    }
}
...