/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . compose . ui . graphics . samples Ċ Ċ import Ġandroidx . annotation . Sample d Ċ import Ġandroidx . compose . ui . geometry . Rect Ċ import Ġandroidx . compose . ui . graphics . Canvas Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . graphics . Image Asset Ċ import Ġandroidx . compose . ui . graphics . Paint Ċ import Ġandroidx . compose . ui . graphics . Pixel Map Ċ import Ġandroidx . compose . ui . graphics . to Pixel Map Ċ Ċ /** Ċ Ġ* ĠSample Ġshowing Ġhow Ġto Ġobtain Ġa Ġ[ Pixel Map ] Ġto Ġquery Ġpixel Ġinformation Ċ Ġ* Ġfrom Ġan Ġunderlying Ġ[ Image Asset ] Ċ Ġ*/ Ċ @ Sample d Ċ fun ĠImage Asset To Pixel Map Sample () Ġ{ ĊĠĠĠ Ġval Ġimage Asset Ġ= Ġcreate Image Asset () ĊĊĠĠĠ Ġ// ĠSample Ġa Ġ 3 Ġby Ġ 2 Ġsub section Ġof Ġthe Ġgiven ĠImage Asset ĊĠĠĠ Ġ// Ġstarting Ġat Ġthe Ġcoordinate Ġ( 4 8 , Ġ 4 9 ) ĊĠĠĠ Ġval Ġpixel map Ġ= Ġimage Asset . to Pixel Map ( ĊĠĠĠĠĠĠĠ Ġstart X Ġ= Ġ 4 8 , ĊĠĠĠĠĠĠĠ Ġstart Y Ġ= Ġ 4 9 , ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 3 , ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 2 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// Ġcreate Ġa Ġhistogram Ġto Ġcount Ġthe Ġnumber Ġof Ġoccurrences Ġof Ġa Ġcolor Ġwithin Ġthe Ġspecified ĊĠĠĠ Ġ// Ġsub section Ġof Ġthe Ġprovided ĠImage Asset ĊĠĠĠ Ġval Ġhistogram Ġ= ĠHashMap < Color , ĠInt >() ĊĠĠĠ Ġfor Ġ( x Ġin Ġ 0 Ġuntil Ġpixel map . width ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( y Ġin Ġ 0 Ġuntil Ġpixel map . height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġpixel map [ x , Ġy ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Count Ġ= Ġhistogram [ color ] Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhistogram [ color ] Ġ= Ġ( color Count Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ[ Image Asset . read Pixels ] Ġsample Ġthat Ġshows Ġhow Ġto Ġcreate Ġa Ġconsumer Ġdefined Ċ Ġ* ĠInt Array Ġto Ġstore Ġpixel Ġinformation Ġand Ġcreate Ġa ĠPixel Map Ġfor Ġquerying Ġinformation Ċ Ġ* Ġwithin Ġthe Ġbuffer Ċ Ġ*/ Ċ @ Sample d Ċ fun ĠImage Asset Read Pixels Sample () Ġ{ ĊĠĠĠ Ġval Ġimage Asset Ġ= Ġcreate Image Asset () ĊĊĠĠĠ Ġval Ġbuffer Ġ= ĠInt Array ( 2 0 Ġ* Ġ 1 0 ) ĊĠĠĠ Ġimage Asset . read Pixels ( buffer Ġ= Ġbuffer , ĊĠĠĠĠĠĠĠ Ġstart X Ġ= Ġ 8 , ĊĠĠĠĠĠĠĠ Ġstart Y Ġ= Ġ 9 , ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 2 0 , ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 1 0 ) ĊĊĠĠĠ Ġval Ġpixel map Ġ= ĠPixel Map ( ĊĠĠĠĠĠĠĠ Ġbuffer Ġ= Ġbuffer , ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 2 0 , ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 1 0 , ĊĠĠĠĠĠĠĠ Ġstride Ġ= Ġ 2 0 , ĊĠĠĠĠĠĠĠ Ġbuffer Offset Ġ= Ġ 0 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// Ġcreate Ġa Ġhistogram Ġto Ġcount Ġthe Ġnumber Ġof Ġoccurrences Ġof Ġa Ġcolor Ġwithin Ġthe Ġspecified ĊĠĠĠ Ġ// Ġsub section Ġof Ġthe Ġprovided ĠImage Asset ĊĠĠĠ Ġval Ġhistogram Ġ= ĠHashMap < Color , ĠInt >() ĊĠĠĠ Ġfor Ġ( x Ġin Ġ 0 Ġuntil Ġpixel map . width ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( y Ġin Ġ 0 Ġuntil Ġpixel map . height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġpixel map [ x , Ġy ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Count Ġ= Ġhistogram [ color ] Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhistogram [ color ] Ġ= Ġ( color Count Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġcreate Image Asset (): ĠImage Asset Ġ{ ĊĠĠĠ Ġval Ġimage Asset Ġ= ĠImage Asset ( 1 0 0 , Ġ 1 0 0 ) ĊĠĠĠ Ġval Ġcanvas Ġ= ĠCanvas ( image Asset ) ĊĠĠĠ Ġval Ġpaint Ġ= ĠPaint () ĊĊĠĠĠ Ġ// ĠDraw Ġ 4 Ġcolored Ġsquares Ġthat Ġare Ġred , Ġblue , Ġgreen Ġand Ġyellow Ġfrom Ġthe Ġtop Ġleft , Ġtop Ġright ĊĠĠĠ Ġ// Ġbottom Ġleft Ġand Ġbottom Ġright Ġrespectively ĊĠĠĠ Ġpaint . color Ġ= ĠColor . Red ĊĠĠĠ Ġcanvas . draw Rect ( Rect . from LTR B ( 0 . 0 f , Ġ 0 . 0 f , Ġ 5 0 . 0 f , Ġ 5 0 . 0 f ), Ġpaint ) ĊĊĠĠĠ Ġpaint . color Ġ= ĠColor . Blue ĊĠĠĠ Ġcanvas . draw Rect ( Rect . from LTR B ( 5 0 . 0 f , Ġ 0 . 0 f , Ġ 1 0 0 . 0 f , Ġ 5 0 . 0 f ), Ġpaint ) ĊĊĠĠĠ Ġpaint . color Ġ= ĠColor . Green ĊĠĠĠ Ġcanvas . draw Rect ( Rect . from LTR B ( 0 . 0 f , Ġ 5 0 . 0 f , Ġ 5 0 . 0 f , Ġ 1 0 0 . 0 f ), Ġpaint ) ĊĊĠĠĠ Ġpaint . color Ġ= ĠColor . Yellow ĊĠĠĠ Ġcanvas . draw Rect ( Rect . from LTR B ( 5 0 . 0 f , Ġ 5 0 . 0 f , Ġ 1 0 0 . 0 f , Ġ 1 0 0 . 0 f ), Ġpaint ) ĊĠĠĠ Ġreturn Ġimage Asset Ċ } Ċ