Module: Chromate::Lab

Defined in:
lib/chromate/lab.rb

Constant Summary collapse

COLORS =

L*a*b* array representations of the 256 xterm colors

[
  [                    0.0,                    0.0,                    0.0],
  [    0.46573992598472813,      2.088717407442653,     0.7359554408427227],
  [     1.5661371650822282,    -3.1994053792742116,      2.286912750078296],
  [       2.03187709106696,    -1.1106879718315725,      3.022868190921024],
  [     0.1580585921287927,     1.1106870278938807,     -3.022867813345936],
  [     0.6237985181135244,      3.199404435336492,     -2.286912372503208],
  [     1.7241957572110245,     -2.088718351380331,    -0.7359550632676404],
  [      5.368312865335966,-2.3139277438577466e-06,  9.255710975430986e-07],
  [     2.1899356831957526, -9.439377057773868e-07,  3.775750823109547e-07],
  [     2.1702682120302335,      9.733065044192912,      3.429426187489948],
  [     7.2979307021415885,    -14.908680584676814,     10.656621363709961],
  [      9.386516414015183,     -4.836292441189285,     13.945215654378117],
  [     0.7365259429070754,     5.1756111418960336,    -14.030418942944955],
  [      2.906794154937309,      14.90867618608896,    -10.577468187682026],
  [      8.034374445289192,     -9.732715133472695,     -3.170796457047925],
  [       10.0284167860891,-3.7397147878426296e-06,  1.495885920688167e-06],
  [                    0.0,                    0.0,                    0.0],
  [    0.08347787161759257,     0.5866039161370046,    -1.5965128364159253],
  [    0.17750795822573195,     1.2473588679607768,    -3.3948366001899046],
  [    0.31486836800315743,      2.212598550480893,     -6.021852037641395],
  [    0.49992911286044617,     3.5130312945475946,     -9.561135550220607],
  [     0.7365259429070754,     5.1756111418960336,    -14.030418942944955],
  [     0.8271476763233778,     -1.689750287577299,      1.207821772802542],
  [     0.9106255479409704,    -1.1031463714402805,    -0.3886910636133778],
  [     1.0046556345491098,    -0.4423914196165224,     -2.187014827387351],
  [     1.1420160443265353,      0.522848262903608,     -4.814030264838859],
  [      1.327076789183824,     1.8232810069702954,     -8.353313777418059],
  [     1.5636736192304532,      3.485860854318748,    -12.806567152228022],
  [      1.758852883167851,    -3.5930973999098725,      2.568321072833574],
  [     1.8423307547854435,     -3.006493483772868,     0.9718082364176539],
  [     1.9363608413935829,    -2.3457385319490958,    -0.8265155273563196],
  [     2.0737212511710084,    -1.3804988494289656,     -3.453530964807822],
  [      2.258781996028297,    -0.0800661053622781,     -6.992814477387027],
  [     2.4953788260749263,     1.5825137419861746,    -11.425760671238855],
  [     3.1199003268149355,     -6.373532351418895,     4.5557566702606795],
  [     3.2033781984325316,     -5.786928435281904,      2.959243833844755],
  [     3.2974082850406674,     -5.126173483458133,     1.1609200700707756],
  [     3.4347686948180964,     -4.160933800938002,    -1.4660953673807153],
  [      3.619829439675385,    -2.8605010568713145,     -5.005378879959915],
  [      3.856426269722011,     -1.197921209522848,     -9.404496602590317],
  [      4.953590646431547,    -10.119512463062835,      7.233357243902772],
  [      5.037068518049139,     -9.532908546925817,      5.636844407486841],
  [      5.131098604657275,     -8.872153595102045,     3.8385206437128616],
  [      5.268459014434704,    -7.9069139125819285,     1.2115052062613652],
  [      5.453519759291993,     -6.606481168515227,    -2.3277783063178403],
  [      5.690116589338622,     -4.943901321166788,    -6.6737925931023625],
  [     7.2979307021415885,    -14.908680584676814,     10.656621363709961],
  [      7.381408573759181,    -14.322076668539797,       9.06010852729403],
  [       7.47543866036732,    -13.661321716716039,      7.261784763520057],
  [      7.612799070144746,    -12.696082034195907,      4.634769326068556],
  [      7.797859815002038,    -11.395649290129233,     1.0954858134893664],
  [      8.034374445289192,     -9.732715133472695,     -3.170796457047925],
  [    0.24597826176295712,     1.1031458729042072,    0.38869126302781276],
  [     0.3294561333805497,     1.6897497890412116,    -1.2078215733881126],
  [     0.4234862199886855,     2.3505047408649977,    -3.0061453371620916],
  [     0.5608466297661145,      3.315744423385114,     -5.633160774613588],
  [     0.7459073746234033,      4.616177167451829,     -9.172444287192793],
  [     0.9825042046700325,      6.278757014800254,    -13.639257157211764],
  [     1.0731259380863314,    -0.5866044146730642,     1.5965130358303437],
  [     1.1566038097039275, -4.985360735343392e-07, 1.9941442941373566e-07],
  [     1.2506338963120633,     0.6607544532877124,     -1.798323564359544],
  [     1.3879943060894924,     1.6259941358078152,      -4.42533900181104],
  [      1.573055050946781,     2.9264268798745166,     -7.964622514390252],
  [     1.8096518809934068,      4.589006727222969,    -12.415097205484948],
  [      2.004831144930808,    -2.4899515270056654,     2.9570123358613865],
  [     2.0883090165484006,    -1.9033476108686609,     1.3604994994454611],
  [     2.1823391031565365,    -1.2425926590448748,    -0.4378242643285124],
  [     2.3196995129339655,    -0.2773529765247723,     -3.064839701780009],
  [      2.504760257791254,      1.023079767541929,      -6.60412321435922],
  [     2.7413570878378835,     2.6856596148903678,    -11.033952108865302],
  [     3.3658785885778926,     -5.270386478514688,      4.944447933288481],
  [      3.449356460195485,     -4.683782562377684,     3.3479350968725674],
  [     3.5433865468036245,    -4.0230276105539255,      1.549611333098594],
  [       3.68074695658105,     -3.057787928033795,    -1.0774041043529137],
  [     3.8658077014383387,    -1.7573551839670936,     -4.616687616932113],
  [      4.102404531484968,   -0.09477533661865489,     -9.012208836891894],
  [        5.1995689081945,       -9.0163665901586,      7.622048506930568],
  [      5.283046779812096,     -8.429762674021624,      6.025535670514653],
  [      5.377076866420232,     -7.769007722197838,      4.227211906740674],
  [      5.514437276197661,     -6.803768039677721,      1.600196469289178],
  [       5.69949802105495,      -5.50333529561102,    -1.9390870432900331],
  [      5.936094851101579,     -3.840755448262581,     -6.280886529664969],
  [      7.543908963904542,     -13.80553471177258,     11.045312626737768],
  [      7.627386835522138,     -13.21893079563559,       9.44879979032185],
  [      7.721416922130274,    -12.558175843811803,       7.65047602654787],
  [      7.858777331907703,      -11.5929361612917,     5.0234605890963735],
  [       8.04372538421865,     -10.29201767349075,     1.4839827790234683],
  [       8.27718726491764,     -8.615925113436965,    -2.7825997928274617],
  [     0.5230499792025647,      2.345737471858331,     0.8265159513926312],
  [     0.6065278508201573,     2.9323413879953493,    -0.7699968850232997],
  [     0.7005579374282966,     3.5930963398190934,     -2.568320648797273],
  [     0.8379183472057221,      4.558336022339238,     -5.195336086248769],
  [     1.0229790920630109,      5.858768766405939,     -8.734619598827981],
  [       1.25957592210964,      7.521348613754378,    -13.198589208451061],
  [     1.3501976555259425,     0.6559871842810455,     2.0343377241951677],
  [      1.433675527143535,       1.24259110041805,     0.4378248877792479],
  [      1.527705613751671,     1.9033460522418222,    -1.3604988759947312],
  [        1.6650660235291,      2.868585734761939,    -3.9875143134462276],
  [     1.8501267683863887,       4.16901847882864,     -7.526797826025433],
  [      2.086723598433018,      5.831598326177079,    -11.974083544043578],
  [     2.2819028623704156,     -1.247359928051528,     3.3948370242261996],
  [      2.365380733988008,    -0.6607560119145373,     1.7983241878102851],
  [     2.4594108205961476,-1.0600907790481173e-06, 4.2403631161924693e-07],
  [      2.596771230373573,     0.9652386224293652,     -2.627015013415196],
  [      2.781831975230862,     2.2656713664960666,     -6.166298525994401],
  [      3.018428805277491,      3.928251213844505,    -10.592558546339276],
  [        3.6429503060175,     -4.027794879560551,      5.382272621653305],
  [     3.7264281776350963,    -3.4411909634235878,      3.785759785237386],
  [      3.820458264243232,     -2.780436011599802,     1.9874360214634068],
  [     3.9578186740206576,     -1.815196329079685,    -0.6395794159880952],
  [      4.142879418877946,    -0.5147635850129562,     -4.178862928567301],
  [     4.3794762489245755,     1.1478162623354826,     -8.570277604210109],
  [      5.476640625634111,    -7.7737749912044904,      8.059873195295392],
  [      5.560118497251704,     -7.187171075067486,      6.463360358879472],
  [      5.654148583859843,     -6.526416123243714,      4.665036595105493],
  [      5.791508993637269,     -5.561176440723598,      2.038021157653996],
  [     5.9765697384945575,     -4.260743696656896,     -1.501262354925209],
  [      6.213166568541187,    -2.5981638493084573,     -5.838261492407609],
  [      7.820980681344153,     -12.56294311281847,     11.483137315102587],
  [      7.904458552961749,     -11.97633919668148,      9.886624478686667],
  [      7.998488639569885,    -11.315584244857707,      8.088300714912688],
  [      8.135054279488433,     -10.34691883018725,       5.45991498460105],
  [      8.316678738930346,     -9.031674511054272,     1.9147068419953395],
  [      8.545001735678095,     -7.333431589141681,    -2.3550957847641163],
  [     0.9278000546103051,      4.160931920520639,     1.4660961195476718],
  [     1.0112779262279012,     4.7475358366576295,   -0.13041671686824796],
  [      1.105308012836037,      5.408290788481401,     -1.928740480642227],
  [     1.2426684226134626,      6.373530471001532,     -4.555755918093729],
  [     1.4277291674707513,      7.673963215068246,      -8.09503943067294],
  [     1.6643259975173805,      9.336543062416686,    -12.554741017010935],
  [      1.754947730933683,     2.4711816329433534,     2.6739178923502136],
  [     1.8384256025512755,      3.057785549080344,     1.0774050559342885],
  [      1.932455689159415,     3.7185405009041164,     -0.720918707839685],
  [     2.0698160989368404,      4.683780183424233,     -3.347934145291187],
  [      2.254876843794129,     5.9842129274909475,    -6.8872176578703925],
  [     2.4914736738407584,      7.646792774839387,     -11.32973298057271],
  [      2.686652937778156,      0.567834520610766,     4.0344171923812455],
  [      2.770130809395752,     1.1544384367477427,     2.4379043559653257],
  [      2.864160896003888,     1.8151933885715288,     0.6395805921913467],
  [     3.0015213057813135,     2.7804330710916454,    -1.9874348452601553],
  [     3.1865820506386022,     4.0808658151583606,     -5.526718357839361],
  [     3.4231788806852315,      5.743445662506799,      -9.94765588731043],
  [      4.047700381425244,    -2.2126004308982843,      6.021852789808346],
  [      4.131178253042837,    -1.6259965147612798,     4.4253399533924265],
  [     4.2252083396509725,    -0.9652415629374939,     2.6270161896184527],
  [      4.362568749428402,-1.8804173912423394e-06,  7.521669509458206e-07],
  [       4.54762949428569,      1.300430863649324,    -3.5392827604122545],
  [      4.784226324332316,      2.963010710997777,    -7.9245934939712654],
  [      5.881390701041852,     -5.958580542542183,      8.699453363450433],
  [      5.964868572659448,      -5.37197662640522,      7.102940527034518],
  [      6.058898659267584,      -4.71122167458142,      5.304616763260533],
  [      6.196259069045009,     -3.745981992061304,     2.6776013258090368],
  [      6.381319813902298,     -2.445549247994588,     -0.861682186770174],
  [      6.617916643948927,    -0.7829694006461496,     -5.191568874186014],
  [      8.223607218362389,    -10.738595481442792,     12.119056210172275],
  [      8.305275059300829,     -10.14418970893012,     10.519422631206087],
  [      8.396613881889909,      -9.47183448116215,       8.71645875705443],
  [      8.528826143428034,     -8.484404504507104,      6.080567201948961],
  [       8.70472814153132,    -7.1444944037420965,      2.525492746690433],
  [      8.926029928054998,     -5.415987644656798,    -1.7480821301431027],
  [      1.473105288901401,      6.606478182901276,     2.3277795005634205],
  [     1.5565831605189935,      7.193082099038267,     0.7312666641475007],
  [     1.6506132471271293,      7.853837050862053,    -1.0670570996264783],
  [     1.7879736569045583,       8.81907673338217,    -3.6940725370779806],
  [      1.973034401761847,     10.119509477448885,     -7.233356049657186],
  [     2.2096312318084728,     11.782089324797337,    -11.687093796927556],
  [     2.3002529652247787,      4.916727895323991,     3.5356012733659625],
  [     2.3837308368423713,     5.5033318114609955,     1.9390884369500427],
  [      2.477760923450507,      6.164086763284768,    0.14076467317606367],
  [      2.615121333227936,       7.12932644580487,    -2.4862507642754386],
  [      2.800182078085225,      8.429759189871586,     -6.025534276854638],
  [     3.0367789081318506,     10.092339037220038,    -10.461413857059416],
  [      3.231958172069252,      3.013380782991404,         4.896100573397],
  [     3.3154360436868444,     3.5999846991284086,      3.299587736981074],
  [     3.4094661302949802,      4.260739650952194,     1.5012639732070898],
  [     3.5468265400724093,     5.2259793334722975,    -1.1257514642443955],
  [      3.731887284929698,      6.526412077538998,     -4.665034976823606],
  [     3.9684841149763272,      8.188991924887437,      -9.07859827809046],
  [      4.719950073683535,     0.8022573384867254,      7.084131952532646],
  [      4.803427945301131,     1.3888612546237162,      5.487619116116738],
  [      4.897458031909267,     2.0496162064474883,     3.6892953523427527],
  [      5.034818441686692,     3.0148558889676185,      1.062279914891251],
  [      5.262960445386941,     4.6180231740532705,    -3.3009319204752865],
  [       5.45647601659061,      5.977868480382758,     -6.851902517813086],
  [      6.980514754786963,     -3.815769078464981,     10.385065170167307],
  [      7.063992626404556,    -3.2291651623279765,      8.788552333751381],
  [      7.158022713012695,    -2.5684102105042044,      6.990228569977414],
  [     7.2953831227901205,     -1.603170527984088,      4.363213132525912],
  [     7.5235251264903695, -3.242898435895647e-06, 1.2971593743582588e-06],
  [      7.717040697694038,     1.3595109328811417,     -3.479420947230122],
  [      8.866298051616052,    -7.5963288370378415,     13.130371822888593],
  [      8.943818556779096,     -6.984046617217424,     11.523587664999313],
  [        9.0305651046354,     -6.291897101808164,      9.712706075791145],
  [      9.156215163257453,     -5.276181767756266,     7.0655003777269245],
  [      9.362175938461576,    -3.6266215940371493,      2.664045044953273],
  [      9.534291317305062,     -2.307210411480548,    -0.7820413523084102],
  [     2.1702682120302335,      9.733065044192912,      3.429426187489948],
  [      2.253746083647826,     10.319668960329917,      1.832913351074017],
  [     2.3477761702559654,     10.980423912153675,    0.03458958730004902],
  [      2.485136580033391,     11.945663594673805,    -2.5924258501514528],
  [       2.71327858373364,      13.54883087975943,     -6.955637685517985],
  [      2.906794154937309,      14.90867618608896,    -10.577468187682026],
  [     2.9974158883536113,      8.043314756615613,      4.637247960292489],
  [      3.080893759971204,      8.629918672752618,     3.0407351238765647],
  [     3.1749238465793397,      9.290673624576403,     1.2424113601025855],
  [     3.3122842563567687,     10.255913307096506,     -1.384604077348911],
  [      3.540426260057014,     11.859080592182172,     -5.747815912715448],
  [     3.7339418312606867,      13.21892589851166,     -9.350937354703776],
  [     3.9291210951980844,       6.13996764428304,      5.997747260323516],
  [     4.0125989668156805,      6.726571560420017,      4.401234423907602],
  [      4.106629053423816,      7.387326512243803,     2.6029106601336283],
  [      4.243989463201242,      8.352566194763932,    -0.0241047773178793],
  [      4.472131466901491,      9.955733479849584,     -4.387316612684411],
  [       4.66564703810516,     11.315578786179072,      -7.96718643389096],
  [     5.2901685388451725,     3.3595326927740032,      7.985182857750628],
  [      5.373646410462765,     3.9461366089109937,      6.388670021334702],
  [      5.467676497070901,       4.60689156073478,      4.590346257560723],
  [      5.605036906848326,      5.572131243254896,      1.963330820109227],
  [      5.833178910548575,      7.175298528340562,    -2.3998810152573102],
  [      6.026694481752244,      8.534993990321052,    -5.9417543099544385],
  [      7.550733219948597,    -1.2584937241776895,     11.286116075385277],
  [      7.634211091566193,    -0.6718898080407265,      9.689603238969363],
  [      7.728241178174329,  -0.011134856216940547,      7.891279475195384],
  [      7.865601587951758,     0.9526131356607653,      5.264264037743882],
  [      8.093346866803692,      2.477891311819247,     0.9003681940181918],
  [      8.283854718648737,     3.6941518861046547,    -2.5734295208431957],
  [      9.386516414015183,     -4.836292441189285,     13.945215654378117],
  [      9.460906294700411,    -4.2391184881929584,     12.333033868078802],
  [      9.544182347323037,    -3.5829926712698383,     10.516168666398768],
  [      9.664865892482492,    -2.6542303503559044,      7.860400014088703],
  [      9.862837195391332,     -1.183527136262602,     3.4451697290818095],
  [       10.0284167860891,-3.7397147878426296e-06,  1.495885920688167e-06],
  [   0.021934076132581026, -9.454326210800446e-09,  3.781730484320178e-09],
  [   0.058780982569004436,-2.5336621689575622e-08, 1.0134648675830249e-08],
  [    0.11435633851765203,-4.9291529191641814e-08, 1.9716611676656726e-08],
  [    0.19243856430753326, -8.294763487182166e-08, 3.3179053948728665e-08],
  [      0.295077431223973, -1.271885236020509e-07,  5.087540944082036e-08],
  [     0.4240923330288915,-1.8279841529356133e-07,  7.311936611742453e-08],
  [     0.5811308595128502,  -2.50487422470691e-07,  1.001949689882764e-07],
  [     0.7677063750858686,-3.3090787054934623e-07,  1.323631482197385e-07],
  [     0.9852237981900878,-4.2466538618946004e-07, 1.6986615447578401e-07],
  [      1.234998173671169, -5.323267521228914e-07, 2.1293070084915655e-07],
  [      1.518268563807407, -6.544260272578484e-07, 2.6177041090313935e-07],
  [     1.8362087507290958, -7.914691957378039e-07,  3.165876782951216e-07],
  [     2.1899356831957526, -9.439377057773868e-07,  3.775750823109547e-07],
  [     2.5805162775921744, -1.112291383997821e-06,  4.449165535991284e-07],
  [     3.0089729867597903,-1.2969709889398828e-06,  5.187883955759531e-07],
  [      3.476288425972694,-1.4984000151763155e-06,  5.993600171727564e-07],
  [     3.9834092637972525,-1.7169865668131834e-06,  6.867946267252734e-07],
  [      4.531249530409994, -1.953124606490775e-06,  7.812498425963099e-07],
  [      5.120693457658401,  -2.20719523214008e-06,  8.828780984071471e-07],
  [      5.752597937960555,-2.4795678427169676e-06,   9.91827137086787e-07],
  [      6.427794669443173,-2.7706008737249377e-06, 1.1082403550410902e-06],
  [      7.147092040193037,  -3.08064282417142e-06,  1.232257129668568e-06],
  [      7.911276793614039, -3.410032770045923e-06, 1.3640131080183693e-06],
  [       8.70043862073167,-3.5489133576316334e-06, 1.4195653430526534e-06],
]

Class Method Summary collapse

Class Method Details

.difference(lab1, lab2) ⇒ Integer

Determine the difference (delta-E 1976) between two L*a*b* color values.

Parameters:

  • lab1 (<Integer>)

    a L*a*b* array

  • lab2 (<Integer>)

    another L*a*b* array

Returns:

  • (Integer)


271
272
273
274
275
276
277
# File 'lib/chromate/lab.rb', line 271

def self.difference(lab1, lab2)
  Math.sqrt(
    (lab1[0] - lab2[0]) ** 2 +
    (lab1[1] - lab2[1]) ** 2 +
    (lab1[2] - lab2[2]) ** 2
  )
end