package Ġcom . xf hy . library . utils Ċ Ċ import Ġandroid . os . Build Ċ import Ġandroid . rend erscript . Script Intr insic Blur Ċ import Ġandroid . rend erscript . Render Script Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . content . Context Ċ import Ġandroid . rend erscript . Allocation Ċ import Ġandroid . rend erscript . Element ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġfe iy ang Ġon Ġ 2 0 1 8 / 4 / 4 Ġ 1 6 : 2 3 Ċ Ġ* ĠDescription Ġ: Ġ å¤ĦçĲĨ Bitmap çļĦ å·¥åħ· ç±» Ċ Ġ*/ Ċ object ĠBitmap Util Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġcontext ĠĠ Ġä¸Ĭ ä¸ĭ æĸĩ å¯¹è±¡ ĊĠĠĠĠ Ġ* Ġ@ param Ġimage ĠĠĠĠ ĠéľĢè¦ģ æ¨¡ ç³ Ĭ çļĦ åĽ¾çīĩ ĊĠĠĠĠ Ġ* Ġ@ param Ġblur Radius Ġæ¨¡ ç³ Ĭ åº¦ ĠĠ Ġ æľĢå¤§ 2 5 ĊĠĠĠĠ Ġ* Ġ@ param Ġout Width Ġ Ġ è¾ĵåĩº çļĦ å®½åº¦ ĊĠĠĠĠ Ġ* Ġ@ param Ġout Height Ġ è¾ĵåĩº çļĦ é«ĺåº¦ ĊĠĠĠĠ Ġ* Ġ@ return Ġæ¨¡ ç³ Ĭ å¤ĦçĲĨ åĲİçļĦ Bitmap ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . J EL LY _ BE AN _ MR 1 ) ĊĠĠĠ Ġfun Ġblur Bitmap ( context : ĠContext , Ġimage : ĠBitmap , Ġblur Radius : ĠFloat , Ġout Width : ĠInt , Ġout Height : ĠInt ): ĠBitmap Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġå°Ĩ ç¼© å°ı åĲİçļĦ åĽ¾çīĩ åģļ ä¸º é¢Ħ æ¸²æŁĵ çļĦ åĽ¾çīĩ ĊĠĠĠĠĠĠĠ Ġval Ġinput Bitmap Ġ= ĠBitmap . create Scaled Bitmap ( image , Ġout Width , Ġout Height , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ// ĠåĪĽå»º ä¸Ģ å¼ł æ¸²æŁĵ åĲİçļĦ è¾ĵåĩº åĽ¾çīĩ ĊĠĠĠĠĠĠĠ Ġval Ġoutput Bitmap Ġ= ĠBitmap . create Bitmap ( input Bitmap ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠåĪĽå»º Render Script åĨħ æł¸ å¯¹è±¡ ĊĠĠĠĠĠĠĠ Ġval Ġrs Ġ= ĠRender Script . create ( context ) ĊĠĠĠĠĠĠĠ Ġ// ĠåĪĽå»º ä¸Ģä¸ª æ¨¡ ç³ Ĭ æķĪæŀľ çļĦ Render Script çļĦ å·¥åħ· å¯¹è±¡ ĊĠĠĠĠĠĠĠ Ġval Ġblur Script Ġ= ĠScript Intr insic Blur . create ( rs , ĠElement . U 8 _ 4 ( rs )) ĊĊĠĠĠĠĠĠĠ Ġ// Ġ çĶ±äºİ Render Script å¹¶ æ²¡æľī ä½¿çĶ¨ VM æĿ¥ åĪĨéħį åĨħåŃĺ , æīĢä»¥ éľĢè¦ģ ä½¿çĶ¨ Allocation ç±» æĿ¥ åĪĽå»º åĴĮ åĪĨéħį åĨħåŃĺ ç©ºéĹ´ ĊĠĠĠĠĠĠĠ Ġ// ĠåĪĽå»º Allocation å¯¹è±¡ çļĦæĹ¶åĢĻ åħ¶å®ŀ åĨħåŃĺ æĺ¯ ç©º çļĦ , éľĢè¦ģ ä½¿çĶ¨ copy To () å°Ĩ æķ°æį® å¡« åħħ è¿Ľ åİ» ĊĠĠĠĠĠĠĠ Ġval Ġtmp In Ġ= ĠAl location . createFrom Bitmap ( rs , Ġinput Bitmap ) ĊĠĠĠĠĠĠĠ Ġval Ġtmp Out Ġ= ĠAl location . createFrom Bitmap ( rs , Ġoutput Bitmap ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® æ¸²æŁĵ çļĦ æ¨¡ ç³ Ĭ ç¨ĭ åº¦ , Ġ 2 5 f æĺ¯ æľĢå¤§ æ¨¡ ç³ Ĭ åº¦ ĊĠĠĠĠĠĠĠ Ġblur Script . set Radius ( blur Radius ) ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® blur Script å¯¹è±¡çļĦ è¾ĵåħ¥ åĨħåŃĺ ĊĠĠĠĠĠĠĠ Ġblur Script . setInput ( tmp In ) ĊĠĠĠĠĠĠĠ Ġ// Ġå°Ĩ è¾ĵåĩº æķ°æį® ä¿ĿåŃĺ åĪ° è¾ĵåĩº åĨħåŃĺ ä¸Ń ĊĠĠĠĠĠĠĠ Ġblur Script . forEach ( tmp Out ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġå°Ĩ æķ°æį® å¡« åħħ åĪ° Allocation ä¸Ń ĊĠĠĠĠĠĠĠ Ġtmp Out . copy To ( output Bitmap ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġoutput Bitmap ĊĠĠĠ Ġ} Ċ Ċ }