3v4l.org

run code in 300+ PHP versions simultaneously
<?php // RYB color to RGB color function RYB2RGB($iRed, $iYellow, $iBlue){ // Save the RYB $original_ryb = [$iRed, $iYellow, $iBlue]; // Remove the whiteness from the color. $iWhite = min($iRed, $iYellow, $iBlue); $iRed -= $iWhite; $iYellow -= $iWhite; $iBlue -= $iWhite; $iMaxYellow = max($iRed, $iYellow, $iBlue); // Get the green out of the yellow and blue $iGreen = min($iYellow, $iBlue); $iYellow -= $iGreen; $iBlue -= $iGreen; if ($iBlue > 0 && $iGreen > 0) { $iBlue *= 2.0; $iGreen *= 2.0; } // Redistribute the remaining yellow. $iRed += $iYellow; $iGreen += $iYellow; // Normalize to values. $iMaxGreen = max($iRed, $iGreen, $iBlue); if ($iMaxGreen > 0) { $iN = $iMaxYellow / $iMaxGreen; $iRed *= $iN; $iGreen *= $iN; $iBlue *= $iN; } // Add the white back $in. $iRed += $iWhite; $iGreen += $iWhite; $iBlue += $iWhite; // Save the RGB $RGB = [floor($iRed), floor($iGreen), floor($iBlue)]; return $RGB; } $R = 98; $y = 152; $b = 223; var_dump( RYB2RGB( $R, $y, $b ) );

preferences:
179.11 ms | 407 KiB | 5 Q