這篇文章主要介紹“php圖片添加高斯模糊的方法是什么”,在日常操作中,相信很多人在php圖片添加高斯模糊的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php圖片添加高斯模糊的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
成都做網(wǎng)站、網(wǎng)站建設(shè)的關(guān)注點不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給成都創(chuàng)新互聯(lián)一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。
private static Bitmap activityShot(Activity activity) { /*獲取windows中最頂層的view*/ View view = activity.getWindow().getDecorView(); //允許當前窗口保存緩存信息 view.setDrawingCacheEnabled(true); view.buildDrawingCache(true); // //獲取狀態(tài)欄高度 // Rect rect = new Rect(); // view.getWindowVisibleDisplayFrame(rect); // int statusBarHeight = rect.top; // // WindowManager windowManager = activity.getWindowManager(); // // //獲取屏幕寬和高 // DisplayMetrics outMetrics = new DisplayMetrics(); // windowManager.getDefaultDisplay().getMetrics(outMetrics); // int width = outMetrics.widthPixels; // int height = outMetrics.heightPixels; // // //去掉狀態(tài)欄 // Bitmap shotBitmap = Bitmap.createBitmap(view.getDrawingCache(), 0, statusBarHeight, width, // height - statusBarHeight); //壓縮系數(shù)2,4,8 float scaleFactor = 8; Bitmap scaledBitmap = Bitmap.createBitmap( (int) (view.getMeasuredWidth() / scaleFactor), (int) (view.getMeasuredHeight() / scaleFactor), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(scaledBitmap); canvas.translate(-view.getLeft() / scaleFactor, -view.getTop() / scaleFactor); canvas.scale(1 / scaleFactor, 1 / scaleFactor); Paint paint = new Paint(); paint.setFlags(Paint.FILTER_BITMAP_FLAG); // 截屏view.getDrawingCache() canvas.drawBitmap(view.getDrawingCache(), 0, 0, paint); //銷毀緩存信息 view.destroyDrawingCache(); view.setDrawingCacheEnabled(false); return scaledBitmap; }
將return的scaleBitmap放入下面的方法:
private static Bitmap rsBlur(Context context, Bitmap source, int radius) { Bitmap inputBmp = source; //(1) //初始化一個RenderScript Context RenderScript renderScript = RenderScript.create(context); // Allocate memory for Renderscript to work with //(2) //創(chuàng)建輸入輸出的allocation final Allocation input = Allocation.createFromBitmap(renderScript, inputBmp); final Allocation output = Allocation.createTyped(renderScript, input.getType()); //(3) // Load up an instance of the specific script that we want to use. //創(chuàng)建ScriptIntrinsic ScriptIntrinsicBlur scriptIntrinsicBlur = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript)); //(4) //填充數(shù)據(jù) scriptIntrinsicBlur.setInput(input); //(5) // Set the blur radius //設(shè)置模糊半徑 scriptIntrinsicBlur.setRadius(radius); //(6) // Start the ScriptIntrinisicBlur //啟動內(nèi)核 scriptIntrinsicBlur.forEach(output); //(7) // Copy the output to the blurred bitmap //copy數(shù)據(jù) output.copyTo(inputBmp); //(8) //銷毀renderScript renderScript.destroy(); return inputBmp; }
不用的時候要remove掉:
public void removeMask(){ if (group != null){ for(int i=0;i到此,關(guān)于“php圖片添加高斯模糊的方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
新聞名稱:php圖片添加高斯模糊的方法是什么
本文路徑:http://weahome.cn/article/ijdcdc.html