1. 程式人生 > >Android中為網路圖片設定高斯模糊效果

Android中為網路圖片設定高斯模糊效果

寫一個方法,用來對Bitmap進行高斯模糊:

public static Bitmap blurBitmap(Bitmap bitmap ,Context context){

    //Let's create an empty bitmap with the same size of the bitmap we want to blur
Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
//Instantiate a new Renderscript
RenderScript rs = RenderScript.create(context); //Create an Intrinsic Blur Script using the Renderscript ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); //Create the Allocations (in/out) with the Renderscript and the in/out bitmaps Allocation allIn = Allocation.createFromBitmap
(rs, bitmap); Allocation allOut = Allocation.createFromBitmap(rs, outBitmap); //Set the radius of the blur: 0 < radius <= 25 blurScript.setRadius(12.0f); //Perform the Renderscript blurScript.setInput(allIn); blurScript.forEach(allOut); //Copy the final bitmap created by the out Allocation to the outBitmap
allOut.copyTo(outBitmap); //recycle the original bitmap bitmap.recycle(); //After finishing everything, we destroy the Renderscript. rs.destroy(); return outBitmap; }
blurScript.setRadius(12.0f);//這個是設定模糊度,取值在0 < radius <= 25,值越大越模糊

既然是網路圖片,用url生成Bitmap的方法如下:

/**
 * @param urlpath
* @return Bitmap
 * 根據圖片url獲取圖片物件
 */
public static Bitmap getBitMBitmap(String urlpath) {
    Bitmap map = null;
    try {
        URL url = new URL(urlpath);
URLConnection conn = url.openConnection();
conn.connect();
InputStream in;
in = conn.getInputStream();
map = BitmapFactory.decodeStream(in);
// TODO Auto-generated catch block
} catch (IOException e) {
        e.printStackTrace();
}
    return map;
}

這個方法不能在UI執行緒中執行,又引出下面的部分,用Thread+Handler實現,程式碼如下:

Thread:

new Thread(new Runnable() {
    @Override
public void run() {
        Bitmap bitmap = Utils.getBitMBitmap(headerImageUrl);
Message msg = Message.obtain();
msg.what = 0;
msg.obj = bitmap;
handler.sendMessage(msg);
}
}).start();

Handler:

Handler handler = new Handler(){
    @Override
public void handleMessage(Message msg) {
        if(msg.what == 0){
            Bitmap newBitmap = Utils.blurBitmap((Bitmap) msg.obj ,getActivity());
iv_parent.setImageBitmap(newBitmap);
}
    }
};

完畢

相關推薦

Android網路圖片設定模糊效果

寫一個方法,用來對Bitmap進行高斯模糊: public static Bitmap blurBitmap(Bitmap bitmap ,Context context){ //Let

Android使用RenderScript實現圖片模糊效果

Android使用RenderScript實現圖片的高斯模糊效果 首先來看一下什麼是高斯模糊效果呢? 高斯模糊(英語:Gaussian Blur),也叫高斯平滑,是在Adobe Photoshop、GIMP以及Paint.NET等影象處理軟體中廣泛使用的處理效果,通常用它

Android——圖片設定模糊效果(ImageView)

效果圖://模糊 Resources res = ShowActivity.this.getResources(); //拿到初始圖 Bitmap bmp= BitmapFactory.decodeRe

Android 自定義設定圖片模糊度、模糊效果

最近專案中有需要到“毛玻璃”效果,網上找一下,千篇一律。高談闊論扯淡的多,真正有用的沒幾個! 藉助此文,做修改之後,實現效果!我只是個搬運工,在此表示感謝! 淡不多扯,直接上程式碼: MainActivity: public class MainActiv

Android本地圖片或者網路圖片模糊效果(毛玻璃效果圖片模糊效果一行程式碼搞定

一,實現本地圖片或者網路圖片的毛玻璃效果特別方便,只需要把下面的FastBlurUtil類複製到你的專案中就行 package com.testdemo.blur_image_lib10;   import android.graphics.Bitmap;   import andr

Android實現圖片模糊(兩種方式)

原文地址:http://www.jb51.net/article/107482.htm 在市面上很多的APP都使用了對圖片作模糊化處理後作為背景的效果,來使得整個頁面更具有整體感。如下就是網易雲音樂的音樂播放頁面: 很明顯這個頁面的背景是由中間的小圖片模糊化後而來的。

android使用方法---圖片模糊

今天這裡給大家介紹兩個高斯模糊的方法和一個優化的方法 1,RenderScript RenderScript是在Android上的高效能執行密集型運算的框架,RenderScript主要用於資料平行計算,尤其對影象處理、攝影分析和計算機視覺特別有用。Rend

URL轉Drawable之 Android獲取網路圖片的三種方法

轉載自: http://doinone.iteye.com/blog/1074283 android中獲取網路圖片是一件耗時的操作,如果直接獲取有可能會出現應用程式無響應(ANR:Application Not Responding)對話方塊的情況。對於這種情況,一般的方

iOS開發-圖片模糊效果

iOS開發的時候有的時候需要將圖片設定模糊,或者通過點選下拉方法,去除模糊,一切都是為了應用更受使用者歡迎,iOS7之後半透明模糊效果得到大範圍使用的比較大,現在也可以看到很多應用區域性用到了圖片模糊效果,關於圖片實現高斯模糊效果有三種方式,CoreImage,GPUImag

Android 模糊效果從319ms到3ms的優化實現

之前做過高斯模糊的的效果,不過依賴一個三方庫,今天看到了一篇文章,一個類檔案就能解決,感覺竊喜,分享給大家。 使用: Glide.with(getActivity()).load(mUser.avatarUrl).asBitmap().into(ne

圖片模糊效果簡單優化

       模糊背景現在已經很流行了,固定圖片的模糊可以讓設計師處理,那麼動態模糊,或者每個使用者個人主頁用自己頭像的圖片模糊做背景,這就需要我們程式設計師通過程式碼來實現了,實現的方案在github上已經有比較完善和得到大家公認的開源專案: Blurry 。前者主要通過

圖片處理的幾種演算法(毛玻璃效果模糊效果,舊時光效果,lomo效果,暖意效果)

毛玻璃效果:高斯模糊效果: //高斯模糊,毛玻璃 //低於Android4.2可以用Java原生程式碼實現。但是效率會低不少:這完全是一種妥協的方式,不推薦 public Bitmap fastblur(Context context, Bitmap sentBitma

Android也能流暢實現毛玻璃效果(模糊)效果

前言 上圖就是我們在IOS裝置上經常能夠見到的毛玻璃(高斯模糊)效果。不得不說,這種效果在適合的場景下使用,能夠獲得絕佳的美感。但是鑑於Android裝置效能和相容性問題,我們通常很難在Android裝置上見到這種效果。 但這並不是IOS的專利效果,Android

圖片實現模糊

最近在搞圖片的顯示,做了一個高斯模糊的效果,使用的是gitgub上寫好的效果, 效果圖如下, 1. (1)xml檔案: <?xml version="1.0" encoding="utf-8"?> <LinearLay

使用canvas實現區域性模糊效果

這個功能目的是為了模糊一些人的臉部,一些文字資訊。主要用於使用者手動操作進行模糊。 實現的功能:本人實現了再pc端上面進行拖拽模糊。 實現思路: 首先載入圖片,然後再載入完成的回撥中,建立一個高斯模糊過的圖片畫布。 接著,繫結滑鼠的互動事件,在裡面獲取到在畫布

模糊效果

高斯模糊可以實現模糊效果,可用於眩暈,場景動畫等效果 高斯模糊利用了卷積計算,把每個畫素和周圍的畫素混合   見程式碼實現 c#程式碼 ImageEffectBase using UnityEngine; namespace GameBase.Effe

iOS自帶實現模糊效果

引 什麼叫高斯模糊效果,通俗地說,就是毛玻璃效果,從iOS 7以來,就頻繁地被設計使用,如果用得好,效果會顯得非常的好。我們來看一個例子: 圖中下面一小部分就是高斯模糊效果。要實現也很簡單,iOS自身就支援這種效果。 iOS 7 UIToolbar

【iOS】iOS下模糊效果的實現

其實有很多種實現方式,但是沒必要了解那麼多,簡單實用就行,選取一種效能相對來說比較好的方式 效果圖如下(高斯0.1): 程式碼: 需要匯入 #import <Accelerate/Accelerate.h> UIImage *ima

模糊效果實現方案及效能對比

高斯模糊實現方案探究 現在越來越多的app在背景圖中使用高斯模糊效果,如yahoo天氣,效果做得很炫。 這裡就用一個demo來談談它的不同實現方式及各自的優缺點。 1. RenderScript 談到高斯模糊,第一個想到的就是RenderScript。RenderScrip

CSS: filter: blur(); 實現模糊效果,不可不知的細節優化

前言 在專案中,要實現如下的效果: 頁面頂部的設計稿,前面一個卡片式的輪播,後邊的背景(是橢圓的一部分)取前面的圖片,進行一個高斯模糊的處理。 開始 前面的輪播部分,使用了第三方的輪播外掛,非常好用,推薦給大家(地址)。輪播,不作為今天的主要內容,暫時簡單描述下,