package Ġcom . peng ke . paper . scanner . crop Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . util . Log Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġorg . opencv . android . Utils Ċ Ċ import Ġorg . opencv . core . Mat Ċ import Ġcom . peng ke . paper . scanner . processor .* Ċ import Ġcom . peng ke . paper . scanner . scan . Scan Presenter Ċ import Ġorg . opencv . core . Point Ċ import Ġjava . io . ByteArray OutputStream Ċ Ċ class ĠBefore hand Crop Presenter ( val Ġcontext : ĠContext , Ġprivate Ġval Ġcorners : ĠC orners , Ġprivate Ġval Ġmat : ĠMat ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġpicture : ĠMat ĊĠĠĠ Ġprivate Ġvar Ġc ropped Picture : ĠMat ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġc ropped Bitmap : ĠBitmap ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" init ĠBefore hand Crop Presenter ") ĊĠĠĠĠĠĠĠ Ġpicture Ġ= Ġmat ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcrop And Save ( scan Pre : ĠScan Presenter ? Ġ= Ġnull , Ġoriginal Bm : ĠBitmap ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( picture Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" picture Ġnull ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( c ropped Bitmap Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" already Ġc ropped ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠObservable . create < Mat > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . onNext ( crop Picture ( picture , Ġcorners . corners Ġas ĠList < Point > )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . computation ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ Ġpc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( TAG , Ġ" c ropped Ġpicture : Ġ" Ġ+ Ġpc . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ropped Picture Ġ= Ġpc ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ropped Bitmap Ġ= ĠBitmap . create Bitmap ( pc . width (), Ġpc . height (), ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUtils . mat To Bitmap ( pc , Ġc ropped Bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġba os Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ropped Bitmap !!. compress ( Bitmap . Compress Format . JPEG , Ġ 1 0 0 , Ġba os ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġthumb Bm Ġ= ĠBitmap . create Scaled Bitmap ( c ropped Bitmap !! , Ġc ropped Bitmap !!. width / 2 , Ġc ropped Bitmap !!. height / 2 , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscan Pre ?. save Image To DB ( original Bm , Ġthumb Bm , Ġc ropped Bitmap !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }