Skip to content

Instantly share code, notes, and snippets.

@chezsick
Created December 20, 2019 00:14
Show Gist options
  • Save chezsick/ef26e0a096e90a2e7ed30fb5a51b88cb to your computer and use it in GitHub Desktop.
Save chezsick/ef26e0a096e90a2e7ed30fb5a51b88cb to your computer and use it in GitHub Desktop.
Generate A Unique Color Space
<?php
function random($min,$max)
{
$out = (pow(256,2)*ord(fgetc(STDIN)))+(pow(256,1)*ord(fgetc(STDIN)))+(pow(256,0)*ord(fgetc(STDIN)));
return (($out/16777216)*($max-$min))+$min;
}
$coefr = random(0,1);
$coefg = random(0,1);
$coefb = random(0,1);
echo "# Encode ::\n";
echo "Y = R * ".$coefr." + G * ".$coefg." + B * ".$coefb."\n";
$coefu = $coefb + $coefg;
echo "U = B * ".$coefu." - Y\n";
$coefv = $coefr + $coefg;
echo "V = R * ".$coefv." - Y\n";
echo "# Decode ::\n";
$coefdv = $coefv * ($coefr + $coefg + $coefb)/3;
$coefdu = $coefu * ($coefr + $coefg + $coefb)/3;
$coefda = $coefu / $coefv * ($coefr + $coefg + $coefb)/3;
$coefdb = $coefv / $coefu * ($coefr + $coefg + $coefb)/3;
echo "R = Y + V * ".$coefdv."\n";
echo "G = Y + U * ".$coefda." - V * ".$coefdb."\n";
echo "B = Y + U * ".$coefdu."\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment