package Ġde . mark us fis ch . android . binary eye . rs Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Canvas Ċ import Ġandroid . support . v 8 . rend erscript . Allocation Ċ import Ġandroid . support . v 8 . rend erscript . Render Script Ċ Ċ fun Ġfix Transparency ( rs : ĠRender Script , Ġbitmap : ĠBitmap ?): ĠBitmap ? Ġ{ Ċ ĉ bitmap Ġ?: Ġreturn Ġnull Ċ ĉ val Ġresult Ġ= Ġanalyze ( rs , Ġbitmap ) Ċ ĉ return Ġif Ġ( result . has Transparent Pixels ) Ġ{ Ċĉ ĉ val Ġcopy Ġ= ĠBitmap . create Bitmap ( Ċĉĉ ĉ bitmap . width , Ċĉĉ ĉ bitmap . height , Ċĉĉ ĉ bitmap . config Ċĉ ĉ ) Ċĉ ĉ Canvas ( copy ). apply Ġ{ Ċĉĉ ĉ draw Color ( result . backgroundColor ) Ċĉĉ ĉ draw Bitmap ( bitmap , Ġ 0 f , Ġ 0 f , Ġnull ) Ċĉ ĉ } Ċĉ ĉ copy Ċ ĉ } Ġelse Ġ{ Ċĉ ĉ bitmap Ċ ĉ } Ċ } Ċ Ċ private Ġfun Ġanalyze ( rs : ĠRender Script , Ġbitmap : ĠBitmap ): ĠResult Ġ{ Ċ ĉ val Ġanalyze Script Ġ= ĠScript C _ analyze ( rs ) Ċ ĉ val Ġbitmap Allocation Ġ= ĠAl location . createFrom Bitmap ( rs , Ġbitmap ) Ċ ĉ val Ġresult Ġ= Ġanalyze Script . reduce _ analyze ( bitmap Allocation ). get () Ċ ĉ bitmap Allocation . destroy () Ċ ĉ analyze Script . destroy () Ċ ĉ return ĠResult ( Ċĉ ĉ result . x Ġ> Ġ 0 , Ċĉ ĉ if Ġ( result . y Ġ> Ġ 0 ) Ġ 0 xff 0 0 0 0 0 0 . toInt () Ġelse Ġ 0 xffffffff . toInt () Ċ ĉ ) Ċ } Ċ Ċ private Ġdata Ġclass ĠResult ( Ċ ĉ val Ġhas Transparent Pixels : ĠBoolean , Ċ ĉ val ĠbackgroundColor : ĠInt Ċ ) Ċ