溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android Picasso使用高斯模糊處理的示例代碼

發(fā)布時(shí)間:2020-09-05 17:26:19 來源:腳本之家 閱讀:138 作者:李, 泰愚 欄目:移動(dòng)開發(fā)

眾所周知,Picasso是一個(gè)在Android開發(fā)中經(jīng)常使用到的圖片加載庫(kù),常規(guī)用法一般是這樣:

Picasso.with(context)
    .load(img_url)
    .config(Bitmap.Config.RGB_565)
    .into(imageView);

還有不使用緩存的用法:

Picasso.with(context)
    .load(img_url)
    .config(Bitmap.Config.RGB_565)
    .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
    .into(imageView);

等等一系列用法不一一列舉,前段時(shí)間遇到一個(gè)需要使用高斯模糊的需求,起初找了一些處理的代碼,但后面發(fā)現(xiàn)Picasso在加載圖片的時(shí)候可以直接進(jìn)行處理,所以去學(xué)習(xí)了一下這個(gè)用法,和其他用法一樣,各種點(diǎn)點(diǎn)點(diǎn),這次是transform():

Picasso.with(context)
    .load(img_url)
    .config(Bitmap.Config.RGB_565)
    .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
    .transform(new BlurTransformation(this))
    .into(imageView);

使用transform實(shí)現(xiàn)高斯模糊,其中關(guān)鍵代碼為BlurTransformation的實(shí)現(xiàn):

public class BlurTransformation implements Transformation {
  RenderScript rs;
 
  public BlurTransformation(Context context) {
    super();
    rs = RenderScript.create(context);
  }
 
  @Override
  public Bitmap transform(Bitmap bitmap) {
    Bitmap blurredBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
 
    Allocation input = Allocation.createFromBitmap(rs, blurredBitmap, Allocation.MipmapControl.MIPMAP_FULL, Allocation.USAGE_SHARED);
    Allocation output = Allocation.createTyped(rs, input.getType());
 
    ScriptIntrinsicBlur script = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs));
    script.setInput(input);
 
    //設(shè)置模糊半徑
    script.setRadius(14);
 
    script.forEach(output);
 
    output.copyTo(blurredBitmap);
 
    bitmap.recycle();
 
    return blurredBitmap;
  }
 
  @Override
  public String key() {
    return "blur";
  }
}

新建好這個(gè)類后,則在Picasso使用是,作為參數(shù)給transform設(shè)置進(jìn)去即可。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI