/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 Ġ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 . ui . graphics Ċ Ċ /** Ċ Ġ* ĠAlgorithms Ġto Ġuse Ġwhen Ġpaint ing Ġon Ġthe Ġcanvas . Ċ Ġ* Ċ Ġ* ĠWhen Ġdrawing Ġa Ġshape Ġor Ġimage Ġonto Ġa Ġcanvas , Ġdifferent Ġalgorithms Ġcan Ġbe Ċ Ġ* Ġused Ġto Ġblend Ġthe Ġpixels . ĠThe Ġdifferent Ġvalues Ġof Ġ[ Blend Mode ] Ġspecify Ċ Ġ* Ġdifferent Ġsuch Ġalgorithms . Ċ Ġ* Ċ Ġ* ĠEach Ġalgorithm Ġhas Ġtwo Ġinputs , Ġthe Ġ_ source _, Ġwhich Ġis Ġthe Ġimage Ġbeing Ġdrawn , Ċ Ġ* Ġand Ġthe Ġ_ destination _, Ġwhich Ġis Ġthe Ġimage Ġinto Ġwhich Ġthe Ġsource Ġimage Ġis Ċ Ġ* Ġbeing Ġcomp os ited . ĠThe Ġdestination Ġis Ġoften Ġthought Ġof Ġas Ġthe Ġ_ background _. Ċ Ġ* ĠThe Ġsource Ġand Ġdestination Ġboth Ġhave Ġfour Ġcolor Ġchannels , Ġthe Ġred , Ġgreen , Ċ Ġ* Ġblue , Ġand Ġalpha Ġchannels . ĠThese Ġare Ġtypically Ġrepresented Ġas Ġnumbers Ġin Ġthe Ċ Ġ* Ġrange Ġ 0 . 0 Ġto Ġ 1 . 0 . ĠThe Ġoutput Ġof Ġthe Ġalgorithm Ġalso Ġhas Ġthese Ġsame Ġfour Ċ Ġ* Ġchannels , Ġwith Ġvalues Ġcomputed Ġfrom Ġthe Ġsource Ġand Ġdestination . Ċ Ġ* Ċ Ġ* ĠThe Ġdocumentation Ġof Ġeach Ġvalue Ġbelow Ġdescribes Ġhow Ġthe Ġalgorithm Ġworks . ĠIn Ċ Ġ* Ġeach Ġcase , Ġan Ġimage Ġshows Ġthe Ġoutput Ġof Ġbl ending Ġa Ġsource Ġimage Ġwith Ġa Ċ Ġ* Ġdestination Ġimage . ĠIn Ġthe Ġimages Ġbelow , Ġthe Ġdestination Ġis Ġrepresented Ġby Ġan Ċ Ġ* Ġimage Ġwith Ġhorizontal Ġlines Ġand Ġan Ġopaque Ġlandscape Ġphoto graph , Ġand Ġthe Ċ Ġ* Ġsource Ġis Ġrepresented Ġby Ġan Ġimage Ġwith Ġvertical Ġlines Ġ( the Ġsame Ġlines Ġbut Ċ Ġ* Ġrotated ) Ġand Ġa Ġbird Ġclip - art Ġimage . ĠThe Ġ[ src ] Ġmode Ġshows Ġonly Ġthe Ġsource Ċ Ġ* Ġimage , Ġand Ġthe Ġ[ dst ] Ġmode Ġshows Ġonly Ġthe Ġdestination Ġimage . ĠIn Ġthe Ċ Ġ* Ġdocumentation Ġbelow , Ġthe Ġtransparency Ġis Ġillustr ated Ġby Ġa Ġchecker board Ċ Ġ* Ġpattern . ĠThe Ġ[ clear ] Ġmode Ġdrops Ġboth Ġthe Ġsource Ġand Ġdestination , Ġresulting Ċ Ġ* Ġin Ġan Ġoutput Ġthat Ġis Ġentirely Ġtransparent Ġ( ill ustr ated Ġby Ġa Ġsolid Ċ Ġ* Ġchecker board Ġpattern ). Ċ Ġ* Ċ Ġ* ĠThe Ġhorizontal Ġand Ġvertical Ġbars Ġin Ġthese Ġimages Ġshow Ġthe Ġred , Ġgreen , Ġand Ċ Ġ* Ġblue Ġchannels Ġwith Ġvarying Ġopacity Ġlevels , Ġthen Ġall Ġthree Ġcolor Ġchannels Ċ Ġ* Ġtogether Ġwith Ġthose Ġsame Ġvarying Ġopacity Ġlevels , Ġthen Ġall Ġthree Ġcolor Ċ Ġ* Ġchannels Ġset Ġto Ġzero Ġwith Ġthose Ġvarying Ġopacity Ġlevels , Ġthen Ġtwo Ġbars Ġshowing Ċ Ġ* Ġa Ġred / green / blue Ġrepe ating Ġgradient , Ġthe Ġfirst Ġwith Ġfull Ġopacity Ġand Ġthe Ċ Ġ* Ġsecond Ġwith Ġpartial Ġopacity , Ġand Ġfinally Ġa Ġbar Ġwith Ġthe Ġthree Ġcolor Ġchannels Ċ Ġ* Ġset Ġto Ġzero Ġbut Ġthe Ġopacity Ġvarying Ġin Ġa Ġrepe ating Ġgradient . Ċ Ġ* Ċ Ġ* Ġ## ĠApplication Ġto Ġthe Ġ[ Canvas ] ĠAPI Ċ Ġ* Ċ Ġ* ĠWhen Ġusing Ġ[ Canvas . save Layer ] Ġand Ġ[ Canvas . restore ], Ġthe Ġblend Ġmode Ġof Ġthe Ċ Ġ* Ġ[ Paint ] Ġgiven Ġto Ġthe Ġ[ Canvas . save Layer ] Ġwill Ġbe Ġapplied Ġwhen Ċ Ġ* Ġ[ Canvas . restore ] Ġis Ġcalled . ĠEach Ġcall Ġto Ġ[ Canvas . save Layer ] Ġintroduces Ġa Ġnew Ċ Ġ* Ġlayer Ġonto Ġwhich Ġshapes Ġand Ġimages Ġare Ġpaint ed ; Ġwhen Ġ[ Canvas . restore ] Ġis Ċ Ġ* Ġcalled , Ġthat Ġlayer Ġis Ġthen Ġcomp os ited Ġonto Ġthe Ġparent Ġlayer , Ġwith Ġthe Ġsource Ċ Ġ* Ġbeing Ġthe Ġmost - recent ly - draw n Ġshapes Ġand Ġimages , Ġand Ġthe Ġdestination Ġbeing Ċ Ġ* Ġthe Ġparent Ġlayer . Ġ( For Ġthe Ġfirst Ġ[ Canvas . save Layer ] Ġcall , Ġthe Ġparent Ġlayer Ċ Ġ* Ġis Ġthe Ġcanvas Ġitself .) Ċ Ġ* Ċ Ġ* ĠSee Ġalso : Ċ Ġ* Ċ Ġ* Ġ Ġ* Ġ[ Paint . blend Mode ], Ġwhich Ġuses Ġ[ Blend Mode ] Ġto Ġdefine Ġthe Ġcomp osit ing Ċ Ġ* ĠĠĠ Ġstrategy . Ċ Ġ*/ Ċ enum Ġclass ĠBlend Mode ( private Ġval Ġport er D uff Mode : Ġandroid . graphics . Port er D uff . Mode ?) Ġ{ ĊĊĠĠĠ Ġ// ĠThis Ġlist Ġcomes Ġfrom ĠSk ia 's ĠSk X fer mode . h Ġand Ġthe Ġvalues Ġ( order ) Ġshould Ġbe ĊĠĠĠ Ġ// Ġkept Ġin Ġsync . ĊĠĠĠ Ġ// ĠSee : Ġhttps :// sk ia . org / user / api / sk paint # Sk X fer mode ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDrop Ġboth Ġthe Ġsource Ġand Ġdestination Ġimages , Ġleaving Ġnothing . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" clear " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ clear . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclear ( android . graphics . Port er D uff . Mode . CLEAR ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDrop Ġthe Ġdestination Ġimage , Ġonly Ġpaint Ġthe Ġsource Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠConcept ually , Ġthe Ġdestination Ġis Ġfirst Ġcleared , Ġthen Ġthe Ġsource Ġimage Ġis ĊĠĠĠĠ Ġ* Ġpaint ed . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Copy " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ src . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsrc ( android . graphics . Port er D uff . Mode . SRC ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDrop Ġthe Ġsource Ġimage , Ġonly Ġpaint Ġthe Ġdestination Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠConcept ually , Ġthe Ġsource Ġimage Ġis Ġdiscarded , Ġleaving Ġthe Ġdestination ĊĠĠĠĠ Ġ* Ġun touched . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Destination " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ dst . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdst ( android . graphics . Port er D uff . Mode . DST ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComposite Ġthe Ġsource Ġimage Ġover Ġthe Ġdestination Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġdefault Ġvalue . ĠIt Ġrepresents Ġthe Ġmost Ġintu itive Ġcase , Ġwhere ĊĠĠĠĠ Ġ* Ġshapes Ġare Ġpaint ed Ġon Ġtop Ġof Ġwhat Ġis Ġbelow , Ġwith Ġtransparent Ġareas Ġshowing ĊĠĠĠĠ Ġ* Ġthe Ġdestination Ġlayer . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Source Ġover ĠDestination " ĠPort er - D uff Ġoperator , ĊĠĠĠĠ Ġ* Ġalso Ġknown Ġas Ġthe ĠP ainter 's ĠAlgorithm . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ src Over . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsrc Over ( android . graphics . Port er D uff . Mode . SRC _ OVER ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComposite Ġthe Ġsource Ġimage Ġunder Ġthe Ġdestination Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġopposite Ġof Ġ[ src Over ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Destination Ġover ĠSource " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ dst Over . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġuseful Ġwhen Ġthe Ġsource Ġimage Ġshould Ġhave Ġbeen Ġpaint ed Ġbefore Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġimage , Ġbut Ġcould Ġnot Ġbe . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdst Over ( android . graphics . Port er D uff . Mode . DST _ OVER ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġthe Ġsource Ġimage , Ġbut Ġonly Ġwhere Ġthe Ġtwo Ġimages Ġoverlap . ĠThe ĊĠĠĠĠ Ġ* Ġdestination Ġimage Ġis Ġnot Ġrendered , Ġit Ġis Ġtreated Ġmerely Ġas Ġa Ġmask . ĠThe ĊĠĠĠĠ Ġ* Ġcolor Ġchannels Ġof Ġthe Ġdestination Ġare Ġignored , Ġonly Ġthe Ġopacity Ġhas Ġan ĊĠĠĠĠ Ġ* Ġeffect . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġshow Ġthe Ġdestination Ġimage Ġinstead , Ġconsider Ġ[ dst In ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġreverse Ġthe Ġsemantic Ġof Ġthe Ġmask Ġ( only Ġshowing Ġthe Ġsource Ġwhere Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġis Ġabsent , Ġrather Ġthan Ġwhere Ġit Ġis Ġpresent ), Ġconsider ĊĠĠĠĠ Ġ* Ġ[ src Out ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Source Ġin ĠDestination " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ src In . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsrc In ( android . graphics . Port er D uff . Mode . SRC _ IN ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġthe Ġdestination Ġimage , Ġbut Ġonly Ġwhere Ġthe Ġtwo Ġimages Ġoverlap . ĠThe ĊĠĠĠĠ Ġ* Ġsource Ġimage Ġis Ġnot Ġrendered , Ġit Ġis Ġtreated Ġmerely Ġas Ġa Ġmask . ĠThe Ġcolor ĊĠĠĠĠ Ġ* Ġchannels Ġof Ġthe Ġsource Ġare Ġignored , Ġonly Ġthe Ġopacity Ġhas Ġan Ġeffect . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġshow Ġthe Ġsource Ġimage Ġinstead , Ġconsider Ġ[ src In ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġreverse Ġthe Ġsemantic Ġof Ġthe Ġmask Ġ( only Ġshowing Ġthe Ġsource Ġwhere Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġis Ġpresent , Ġrather Ġthan Ġwhere Ġit Ġis Ġabsent ), Ġconsider Ġ[ dst Out ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Destination Ġin ĠSource " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ dst In . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdst In ( android . graphics . Port er D uff . Mode . DST _ IN ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġthe Ġsource Ġimage , Ġbut Ġonly Ġwhere Ġthe Ġtwo Ġimages Ġdo Ġnot Ġoverlap . ĠThe ĊĠĠĠĠ Ġ* Ġdestination Ġimage Ġis Ġnot Ġrendered , Ġit Ġis Ġtreated Ġmerely Ġas Ġa Ġmask . ĠThe Ġcolor ĊĠĠĠĠ Ġ* Ġchannels Ġof Ġthe Ġdestination Ġare Ġignored , Ġonly Ġthe Ġopacity Ġhas Ġan Ġeffect . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġshow Ġthe Ġdestination Ġimage Ġinstead , Ġconsider Ġ[ dst Out ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġreverse Ġthe Ġsemantic Ġof Ġthe Ġmask Ġ( only Ġshowing Ġthe Ġsource Ġwhere Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġis Ġpresent , Ġrather Ġthan Ġwhere Ġit Ġis Ġabsent ), Ġconsider Ġ[ src In ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Source Ġout ĠDestination " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ src Out . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsrc Out ( android . graphics . Port er D uff . Mode . SRC _ OUT ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠShow Ġthe Ġdestination Ġimage , Ġbut Ġonly Ġwhere Ġthe Ġtwo Ġimages Ġdo Ġnot Ġoverlap . ĠThe ĊĠĠĠĠ Ġ* Ġsource Ġimage Ġis Ġnot Ġrendered , Ġit Ġis Ġtreated Ġmerely Ġas Ġa Ġmask . ĠThe Ġcolor ĊĠĠĠĠ Ġ* Ġchannels Ġof Ġthe Ġsource Ġare Ġignored , Ġonly Ġthe Ġopacity Ġhas Ġan Ġeffect . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġshow Ġthe Ġsource Ġimage Ġinstead , Ġconsider Ġ[ src Out ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTo Ġreverse Ġthe Ġsemantic Ġof Ġthe Ġmask Ġ( only Ġshowing Ġthe Ġdestination Ġwhere Ġthe ĊĠĠĠĠ Ġ* Ġsource Ġis Ġpresent , Ġrather Ġthan Ġwhere Ġit Ġis Ġabsent ), Ġconsider Ġ[ dst In ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Destination Ġout ĠSource " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ dst Out . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdst Out ( android . graphics . Port er D uff . Mode . DST _ OUT ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComposite Ġthe Ġsource Ġimage Ġover Ġthe Ġdestination Ġimage , Ġbut Ġonly Ġwhere Ġit ĊĠĠĠĠ Ġ* Ġoverlap s Ġthe Ġdestination . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Source Ġat op ĠDestination " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġessentially Ġthe Ġ[ src Over ] Ġoperator , Ġbut Ġwith Ġthe Ġoutput 's Ġopacity ĊĠĠĠĠ Ġ* Ġchannel Ġbeing Ġset Ġto Ġthat Ġof Ġthe Ġdestination Ġimage Ġinstead Ġof Ġbeing Ġa ĊĠĠĠĠ Ġ* Ġcombination Ġof Ġboth Ġimage 's Ġopacity Ġchannels . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġa Ġvariant Ġwith Ġthe Ġdestination Ġon Ġtop Ġinstead Ġof Ġthe Ġsource , Ġsee ĊĠĠĠĠ Ġ* Ġ[ dst AT op ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ src AT op . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsrc AT op ( android . graphics . Port er D uff . Mode . SRC _ AT OP ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComposite Ġthe Ġdestination Ġimage Ġover Ġthe Ġsource Ġimage , Ġbut Ġonly Ġwhere Ġit ĊĠĠĠĠ Ġ* Ġoverlap s Ġthe Ġsource . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Destination Ġat op ĠSource " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġessentially Ġthe Ġ[ dst Over ] Ġoperator , Ġbut Ġwith Ġthe Ġoutput 's Ġopacity ĊĠĠĠĠ Ġ* Ġchannel Ġbeing Ġset Ġto Ġthat Ġof Ġthe Ġsource Ġimage Ġinstead Ġof Ġbeing Ġa ĊĠĠĠĠ Ġ* Ġcombination Ġof Ġboth Ġimage 's Ġopacity Ġchannels . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġa Ġvariant Ġwith Ġthe Ġsource Ġon Ġtop Ġinstead Ġof Ġthe Ġdestination , Ġsee ĊĠĠĠĠ Ġ* Ġ[ src AT op ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ dst AT op . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdst AT op ( android . graphics . Port er D uff . Mode . DST _ AT OP ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApply Ġa Ġbit wise Ġ` xor ` Ġoperator Ġto Ġthe Ġsource Ġand Ġdestination Ġimages . ĠThis ĊĠĠĠĠ Ġ* Ġleaves Ġtransparency Ġwhere Ġthey Ġwould Ġoverlap . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Source Ġxor ĠDestination " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ xor . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġxor ( android . graphics . Port er D uff . Mode . XOR ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSum Ġthe Ġcomponents Ġof Ġthe Ġsource Ġand Ġdestination Ġimages . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠTr ansparency Ġin Ġa Ġpixel Ġof Ġone Ġof Ġthe Ġimages Ġreduces Ġthe Ġcontribution Ġof ĊĠĠĠĠ Ġ* Ġthat Ġimage Ġto Ġthe Ġcorresponding Ġoutput Ġpixel , Ġas Ġif Ġthe Ġcolor Ġof Ġthat ĊĠĠĠĠ Ġ* Ġpixel Ġin Ġthat Ġimage Ġwas Ġdark er . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcorresponds Ġto Ġthe Ġ" Source Ġplus ĠDestination " ĠPort er - D uff Ġoperator . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ plus . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġplus ( android . graphics . Port er D uff . Mode . ADD ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMultiply Ġthe Ġcolor Ġcomponents Ġof Ġthe Ġsource Ġand Ġdestination Ġimages . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcan Ġonly Ġresult Ġin Ġthe Ġsame Ġor Ġdark er Ġcolors Ġ( multiply ing Ġby Ġwhite , ĊĠĠĠĠ Ġ* Ġ 1 . 0 , Ġresults Ġin Ġno Ġchange ; Ġmultiply ing Ġby Ġblack , Ġ 0 . 0 , Ġresults Ġin Ġblack ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠWhen Ġcomp osit ing Ġtwo Ġopaque Ġimages , Ġthis Ġhas Ġsimilar Ġeffect Ġto Ġoverlapping ĊĠĠĠĠ Ġ* Ġtwo Ġtransp are nc ies Ġon Ġa Ġproject or . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġa Ġvariant Ġthat Ġalso Ġmultip lies Ġthe Ġalpha Ġchannel , Ġconsider Ġ[ multiply ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ mod ulate . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ screen ], Ġwhich Ġdoes Ġa Ġsimilar Ġcomputation Ġbut Ġinverted . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ overlay ], Ġwhich Ġcombin es Ġ[ mod ulate ] Ġand Ġ[ screen ] Ġto Ġfavor Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ Ġdestination Ġimage . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ hard Light ], Ġwhich Ġcombin es Ġ[ mod ulate ] Ġand Ġ[ screen ] Ġto Ġfavor Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ Ġsource Ġimage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġmod ulate ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ// ĠFollowing Ġblend Ġmodes Ġare Ġdefined Ġin Ġthe ĠCSS ĠComp osit ing Ġstandard . ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMultiply Ġthe Ġinverse Ġof Ġthe Ġcomponents Ġof Ġthe Ġsource Ġand Ġdestination ĊĠĠĠĠ Ġ* Ġimages , Ġand Ġinverse Ġthe Ġresult . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn verting Ġthe Ġcomponents Ġmeans Ġthat Ġa Ġfully Ġs atur ated Ġchannel Ġ( opaque ĊĠĠĠĠ Ġ* Ġwhite ) Ġis Ġtreated Ġas Ġthe Ġvalue Ġ 0 . 0 , Ġand Ġvalues Ġnormally Ġtreated Ġas Ġ 0 . 0 ĊĠĠĠĠ Ġ* Ġ( black , Ġtransparent ) Ġare Ġtreated Ġas Ġ 1 . 0 . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġis Ġessentially Ġthe Ġsame Ġas Ġ[ mod ulate ] Ġblend Ġmode , Ġbut Ġwith Ġthe Ġvalues ĊĠĠĠĠ Ġ* Ġof Ġthe Ġcolors Ġinverted Ġbefore Ġthe Ġmultiplication Ġand Ġthe Ġresult Ġbeing ĊĠĠĠĠ Ġ* Ġinverted Ġback Ġbefore Ġrendering . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcan Ġonly Ġresult Ġin Ġthe Ġsame Ġor Ġlight er Ġcolors Ġ( multiply ing Ġby Ġblack , ĊĠĠĠĠ Ġ* Ġ 1 . 0 , Ġresults Ġin Ġno Ġchange ; Ġmultiply ing Ġby Ġwhite , Ġ 0 . 0 , Ġresults Ġin Ġwhite ). ĊĠĠĠĠ Ġ* ĠSimilar ly , Ġin Ġthe Ġalpha Ġchannel , Ġit Ġcan Ġonly Ġresult Ġin Ġmore Ġopaque Ġcolors . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġhas Ġsimilar Ġeffect Ġto Ġtwo Ġproject ors Ġdisplaying Ġtheir Ġimages Ġon Ġthe ĊĠĠĠĠ Ġ* Ġsame Ġscreen Ġsimultaneously . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ screen . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ mod ulate ], Ġwhich Ġdoes Ġa Ġsimilar Ġcomputation Ġbut Ġwithout Ġin verting Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ Ġvalues . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ overlay ], Ġwhich Ġcombin es Ġ[ mod ulate ] Ġand Ġ[ screen ] Ġto Ġfavor Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ Ġdestination Ġimage . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ hard Light ], Ġwhich Ġcombin es Ġ[ mod ulate ] Ġand Ġ[ screen ] Ġto Ġfavor Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ Ġsource Ġimage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġscreen ( android . graphics . Port er D uff . Mode . SCREEN ), Ġ// ĠThe Ġlast Ġcoeff Ġmode . ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMultiply Ġthe Ġcomponents Ġof Ġthe Ġsource Ġand Ġdestination Ġimages Ġafter ĊĠĠĠĠ Ġ* Ġadjust ing Ġthem Ġto Ġfavor Ġthe Ġdestination . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSpecific ally , Ġif Ġthe Ġdestination Ġvalue Ġis Ġsmaller , Ġthis Ġmultip lies Ġit Ġwith ĊĠĠĠĠ Ġ* Ġthe Ġsource Ġvalue , Ġwhereas Ġis Ġthe Ġsource Ġvalue Ġis Ġsmaller , Ġit Ġmultip lies ĊĠĠĠĠ Ġ* Ġthe Ġinverse Ġof Ġthe Ġsource Ġvalue Ġwith Ġthe Ġinverse Ġof Ġthe Ġdestination Ġvalue , ĊĠĠĠĠ Ġ* Ġthen Ġin verts Ġthe Ġresult . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn verting Ġthe Ġcomponents Ġmeans Ġthat Ġa Ġfully Ġs atur ated Ġchannel Ġ( opaque ĊĠĠĠĠ Ġ* Ġwhite ) Ġis Ġtreated Ġas Ġthe Ġvalue Ġ 0 . 0 , Ġand Ġvalues Ġnormally Ġtreated Ġas Ġ 0 . 0 ĊĠĠĠĠ Ġ* Ġ( black , Ġtransparent ) Ġare Ġtreated Ġas Ġ 1 . 0 . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ overlay . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ mod ulate ], Ġwhich Ġalways Ġmultip lies Ġthe Ġvalues . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ screen ], Ġwhich Ġalways Ġmultip lies Ġthe Ġin ver ses Ġof Ġthe Ġvalues . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ hard Light ], Ġwhich Ġis Ġsimilar Ġto Ġ[ overlay ] Ġbut Ġfav ors Ġthe Ġsource Ġimage ĊĠĠĠĠ Ġ* ĠĠĠ Ġinstead Ġof Ġthe Ġdestination Ġimage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverlay ( android . graphics . Port er D uff . Mode . OVER LAY ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComposite Ġthe Ġsource Ġand Ġdestination Ġimage Ġby Ġchoosing Ġthe Ġlowest Ġvalue ĊĠĠĠĠ Ġ* Ġfrom Ġeach Ġcolor Ġchannel . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġopacity Ġof Ġthe Ġoutput Ġimage Ġis Ġcomputed Ġin Ġthe Ġsame Ġway Ġas Ġfor ĊĠĠĠĠ Ġ* Ġ[ src Over ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ dar ken . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdar ken ( android . graphics . Port er D uff . Mode . D AR KEN ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComposite Ġthe Ġsource Ġand Ġdestination Ġimage Ġby Ġchoosing Ġthe Ġhighest Ġvalue ĊĠĠĠĠ Ġ* Ġfrom Ġeach Ġcolor Ġchannel . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġopacity Ġof Ġthe Ġoutput Ġimage Ġis Ġcomputed Ġin Ġthe Ġsame Ġway Ġas Ġfor ĊĠĠĠĠ Ġ* Ġ[ src Over ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ light en . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġlight en ( android . graphics . Port er D uff . Mode . LIGHT EN ), ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDiv ide Ġthe Ġdestination Ġby Ġthe Ġinverse Ġof Ġthe Ġsource . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn verting Ġthe Ġcomponents Ġmeans Ġthat Ġa Ġfully Ġs atur ated Ġchannel Ġ( opaque ĊĠĠĠĠ Ġ* Ġwhite ) Ġis Ġtreated Ġas Ġthe Ġvalue Ġ 0 . 0 , Ġand Ġvalues Ġnormally Ġtreated Ġas Ġ 0 . 0 ĊĠĠĠĠ Ġ* Ġ( black , Ġtransparent ) Ġare Ġtreated Ġas Ġ 1 . 0 . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ color Dod ge . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcolor Dod ge ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDiv ide Ġthe Ġinverse Ġof Ġthe Ġdestination Ġby Ġthe Ġthe Ġsource , Ġand Ġinverse Ġthe Ġresult . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn verting Ġthe Ġcomponents Ġmeans Ġthat Ġa Ġfully Ġs atur ated Ġchannel Ġ( opaque ĊĠĠĠĠ Ġ* Ġwhite ) Ġis Ġtreated Ġas Ġthe Ġvalue Ġ 0 . 0 , Ġand Ġvalues Ġnormally Ġtreated Ġas Ġ 0 . 0 ĊĠĠĠĠ Ġ* Ġ( black , Ġtransparent ) Ġare Ġtreated Ġas Ġ 1 . 0 . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ color Burn . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcolor Burn ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMultiply Ġthe Ġcomponents Ġof Ġthe Ġsource Ġand Ġdestination Ġimages Ġafter ĊĠĠĠĠ Ġ* Ġadjust ing Ġthem Ġto Ġfavor Ġthe Ġsource . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSpecific ally , Ġif Ġthe Ġsource Ġvalue Ġis Ġsmaller , Ġthis Ġmultip lies Ġit Ġwith Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġvalue , Ġwhereas Ġis Ġthe Ġdestination Ġvalue Ġis Ġsmaller , Ġit ĊĠĠĠĠ Ġ* Ġmultip lies Ġthe Ġinverse Ġof Ġthe Ġdestination Ġvalue Ġwith Ġthe Ġinverse Ġof Ġthe ĊĠĠĠĠ Ġ* Ġsource Ġvalue , Ġthen Ġin verts Ġthe Ġresult . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn verting Ġthe Ġcomponents Ġmeans Ġthat Ġa Ġfully Ġs atur ated Ġchannel Ġ( opaque ĊĠĠĠĠ Ġ* Ġwhite ) Ġis Ġtreated Ġas Ġthe Ġvalue Ġ 0 . 0 , Ġand Ġvalues Ġnormally Ġtreated Ġas Ġ 0 . 0 ĊĠĠĠĠ Ġ* Ġ( black , Ġtransparent ) Ġare Ġtreated Ġas Ġ 1 . 0 . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ hard Light . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ mod ulate ], Ġwhich Ġalways Ġmultip lies Ġthe Ġvalues . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ screen ], Ġwhich Ġalways Ġmultip lies Ġthe Ġin ver ses Ġof Ġthe Ġvalues . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ overlay ], Ġwhich Ġis Ġsimilar Ġto Ġ[ hard Light ] Ġbut Ġfav ors Ġthe Ġdestination ĊĠĠĠĠ Ġ* ĠĠĠ Ġimage Ġinstead Ġof Ġthe Ġsource Ġimage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġhard Light ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUse Ġ[ color Dod ge ] Ġfor Ġsource Ġvalues Ġbelow Ġ 0 . 5 Ġand Ġ[ color Burn ] Ġfor Ġsource ĊĠĠĠĠ Ġ* Ġvalues Ġabove Ġ 0 . 5 . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġresults Ġin Ġa Ġsimilar Ġbut Ġs of ter Ġeffect Ġthan Ġ[ overlay ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ soft Light . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ color ], Ġwhich Ġis Ġa Ġmore Ġsub tle Ġt int ing Ġeffect . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsoft Light ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSubtract Ġthe Ġsmaller Ġvalue Ġfrom Ġthe Ġbigger Ġvalue Ġfor Ġeach Ġchannel . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠComp osit ing Ġblack Ġhas Ġno Ġeffect ; Ġcomp osit ing Ġwhite Ġin verts Ġthe Ġcolors Ġof ĊĠĠĠĠ Ġ* Ġthe Ġother Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġopacity Ġof Ġthe Ġoutput Ġimage Ġis Ġcomputed Ġin Ġthe Ġsame Ġway Ġas Ġfor ĊĠĠĠĠ Ġ* Ġ[ src Over ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġeffect Ġis Ġsimilar Ġto Ġ[ ex clusion ] Ġbut Ġhar sher . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ difference . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdifference ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSubtract Ġdouble Ġthe Ġproduct Ġof Ġthe Ġtwo Ġimages Ġfrom Ġthe Ġsum Ġof Ġthe Ġtwo ĊĠĠĠĠ Ġ* Ġimages . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠComp osit ing Ġblack Ġhas Ġno Ġeffect ; Ġcomp osit ing Ġwhite Ġin verts Ġthe Ġcolors Ġof ĊĠĠĠĠ Ġ* Ġthe Ġother Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġopacity Ġof Ġthe Ġoutput Ġimage Ġis Ġcomputed Ġin Ġthe Ġsame Ġway Ġas Ġfor ĊĠĠĠĠ Ġ* Ġ[ src Over ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġeffect Ġis Ġsimilar Ġto Ġ[ difference ] Ġbut Ġs of ter . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ ex clusion . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġex clusion ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMultiply Ġthe Ġcomponents Ġof Ġthe Ġsource Ġand Ġdestination Ġimages , Ġincluding ĊĠĠĠĠ Ġ* Ġthe Ġalpha Ġchannel . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThis Ġcan Ġonly Ġresult Ġin Ġthe Ġsame Ġor Ġdark er Ġcolors Ġ( multiply ing Ġby Ġwhite , ĊĠĠĠĠ Ġ* Ġ 1 . 0 , Ġresults Ġin Ġno Ġchange ; Ġmultiply ing Ġby Ġblack , Ġ 0 . 0 , Ġresults Ġin Ġblack ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSince Ġthe Ġalpha Ġchannel Ġis Ġalso Ġmultip lied , Ġa Ġfully - transparent Ġpixel ĊĠĠĠĠ Ġ* Ġ( opacity Ġ 0 . 0 ) Ġin Ġone Ġimage Ġresults Ġin Ġa Ġfully Ġtransparent Ġpixel Ġin Ġthe ĊĠĠĠĠ Ġ* Ġoutput . ĠThis Ġis Ġsimilar Ġto Ġ[ dst In ], Ġbut Ġwith Ġthe Ġcolors Ġcombined . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠFor Ġa Ġvariant Ġthat Ġmultip lies Ġthe Ġcolors Ġbut Ġdoes Ġnot Ġmultiply Ġthe Ġalpha ĊĠĠĠĠ Ġ* Ġchannel , Ġconsider Ġ[ mod ulate ]. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ multiply . png ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġmultiply ( android . graphics . Port er D uff . Mode . MULTI PLY ), Ġ// ĠThe Ġlast Ġsepar able Ġmode . ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTake Ġthe Ġhue Ġof Ġthe Ġsource Ġimage , Ġand Ġthe Ġsat uration Ġand Ġl umin osity Ġof Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġeffect Ġis Ġto Ġt int Ġthe Ġdestination Ġimage Ġwith Ġthe Ġsource Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġopacity Ġof Ġthe Ġoutput Ġimage Ġis Ġcomputed Ġin Ġthe Ġsame Ġway Ġas Ġfor ĊĠĠĠĠ Ġ* Ġ[ src Over ]. ĠReg ions Ġthat Ġare Ġentirely Ġtransparent Ġin Ġthe Ġsource Ġimage Ġtake ĊĠĠĠĠ Ġ* Ġtheir Ġhue Ġfrom Ġthe Ġdestination . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ hue . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ color ], Ġwhich Ġis Ġa Ġsimilar Ġbut Ġstrong er Ġeffect Ġas Ġit Ġalso Ġapplies Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ Ġsat uration Ġof Ġthe Ġsource Ġimage . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ H SV Color ], Ġwhich Ġallows Ġcolors Ġto Ġbe Ġexpressed Ġusing ĠH ue Ġrather Ġthan ĊĠĠĠĠ Ġ* ĠĠĠ Ġthe Ġred / green / blue Ġchannels Ġof Ġ[ Color ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġhue ( null ), Ġ// ĠNot ĠSupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTake Ġthe Ġsat uration Ġof Ġthe Ġsource Ġimage , Ġand Ġthe Ġhue Ġand Ġl umin osity Ġof Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġopacity Ġof Ġthe Ġoutput Ġimage Ġis Ġcomputed Ġin Ġthe Ġsame Ġway Ġas Ġfor ĊĠĠĠĠ Ġ* Ġ[ src Over ]. ĠReg ions Ġthat Ġare Ġentirely Ġtransparent Ġin Ġthe Ġsource Ġimage Ġtake ĊĠĠĠĠ Ġ* Ġtheir Ġsat uration Ġfrom Ġthe Ġdestination . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ hue . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ color ], Ġwhich Ġalso Ġapplies Ġthe Ġhue Ġof Ġthe Ġsource Ġimage . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ l umin osity ], Ġwhich Ġapplies Ġthe Ġl umin osity Ġof Ġthe Ġsource Ġimage Ġto Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ Ġdestination . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġsat uration ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTake Ġthe Ġhue Ġand Ġsat uration Ġof Ġthe Ġsource Ġimage , Ġand Ġthe Ġl umin osity Ġof Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġeffect Ġis Ġto Ġt int Ġthe Ġdestination Ġimage Ġwith Ġthe Ġsource Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġopacity Ġof Ġthe Ġoutput Ġimage Ġis Ġcomputed Ġin Ġthe Ġsame Ġway Ġas Ġfor ĊĠĠĠĠ Ġ* Ġ[ src Over ]. ĠReg ions Ġthat Ġare Ġentirely Ġtransparent Ġin Ġthe Ġsource Ġimage Ġtake ĊĠĠĠĠ Ġ* Ġtheir Ġhue Ġand Ġsat uration Ġfrom Ġthe Ġdestination . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ color . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ hue ], Ġwhich Ġis Ġa Ġsimilar Ġbut Ġwe aker Ġeffect . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ soft Light ], Ġwhich Ġis Ġa Ġsimilar Ġt int ing Ġeffect Ġbut Ġalso Ġt ints Ġwhite . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ sat uration ], Ġwhich Ġonly Ġapplies Ġthe Ġsat uration Ġof Ġthe Ġsource Ġimage . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġcolor ( null ), Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTake Ġthe Ġl umin osity Ġof Ġthe Ġsource Ġimage , Ġand Ġthe Ġhue Ġand Ġsat uration Ġof Ġthe ĊĠĠĠĠ Ġ* Ġdestination Ġimage . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġopacity Ġof Ġthe Ġoutput Ġimage Ġis Ġcomputed Ġin Ġthe Ġsame Ġway Ġas Ġfor ĊĠĠĠĠ Ġ* Ġ[ src Over ]. ĠReg ions Ġthat Ġare Ġentirely Ġtransparent Ġin Ġthe Ġsource Ġimage Ġtake ĊĠĠĠĠ Ġ* Ġtheir Ġl umin osity Ġfrom Ġthe Ġdestination . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ![]( https :// flutter . github . io / assets - for - api - docs / assets / dart - ui / blend _ mode _ l umin osity . png ) ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSee Ġalso : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ sat uration ], Ġwhich Ġapplies Ġthe Ġsat uration Ġof Ġthe Ġsource Ġimage Ġto Ġthe ĊĠĠĠĠ Ġ* ĠĠĠ Ġdestination . ĊĠĠĠĠ Ġ* Ġ Ġ* Ġ[ Image Filter . blur ], Ġwhich Ġcan Ġbe Ġused Ġwith Ġ[ Back drop Filter ] Ġfor Ġa ĊĠĠĠĠ Ġ* ĠĠĠ Ġrelated Ġeffect . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġl umin osity ( null ); Ġ// ĠNot Ġsupported ĊĊĠĠĠ Ġfun Ġto Port er D uff Mode (): Ġandroid . graphics . Port er D uff . Mode Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( port er D uff Mode Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTODO (" nj aw ad : Ġ" Ġ+ Ġthis Ġ+ Ġ" Ġdoes Ġnot Ġhave Ġequivalent ĠPort er D uff Ġmode ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġport er D uff Mode ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }