โค้ด: เลือกทั้งหมด
function convertColor($color, $type)
{
$namedColors = [
"black" => "#000000",
"white" => "#FFFFFF",
"red" => "#FF0000",
"green" => "#00FF00",
"blue" => "#0000FF",
"yellow" => "#FFFF00",
"cyan" => "#00FFFF",
"magenta" => "#FF00FF",
"silver" => "#C0C0C0",
"gray" => "#808080",
"maroon" => "#800000",
"olive" => "#808000",
"purple" => "#800080",
"teal" => "#008080",
"navy" => "#000080",
"orange" => "#FFA500",
"pink" => "#FFC0CB",
"brown" => "#A52A2A",
"gold" => "#FFD700",
"indigo" => "#4B0082",
"violet" => "#EE82EE",
"lime" => "#00FF00",
"turquoise" => "#40E0D0",
"tan" => "#D2B48C",
"salmon" => "#FA8072",
"khaki" => "#F0E68C",
"lavender" => "#E6E6FA",
"plum" => "#DDA0DD",
"orchid" => "#DA70D6",
"crimson" => "#DC143C",
"chocolate" => "#D2691E",
"coral" => "#FF7F50",
"beige" => "#F5F5DC",
"mint" => "#98FF98",
"ivory" => "#FFFFF0",
"peach" => "#FFDAB9",
"aqua" => "#00FFFF",
"azure" => "#F0FFFF",
"fuchsia" => "#FF00FF",
"wheat" => "#F5DEB3",
"limegreen" => "#32CD32",
"seagreen" => "#2E8B57",
"midnightblue" => "#191970",
"royalblue" => "#4169E1",
"skyblue" => "#87CEEB",
"steelblue" => "#4682B4",
"darkblue" => "#00008B",
"darkgreen" => "#006400",
"darkred" => "#8B0000",
"darkorange" => "#FF8C00",
"darkviolet" => "#9400D3",
"darkgray" => "#A9A9A9",
"lightgray" => "#D3D3D3",
"lightgreen" => "#90EE90",
"lightblue" => "#ADD8E6",
"lightpink" => "#FFB6C1",
"lightcoral" => "#F08080",
"lightyellow" => "#FFFFE0",
"lightgoldenrodyellow" => "#FAFAD2",
"lightseagreen" => "#20B2AA"
];
switch ($type) {
case 'Color name':
if (array_key_exists(strtolower($color), $namedColors)) {
$hex = $namedColors[strtolower($color)];
$rgb = hexToRgb($hex);
$name = ucfirst($color);
} else {
return false;
}
break;
case 'Hex':
if (preg_match('/^#([a-fA-F0-9]{6})$/', $color)) {
$hex = $color;
$rgb = hexToRgb($hex);
$name = array_search($hex, $namedColors) ?: "N/A";
} else {
return false;
}
break;
case 'RGB':
if (preg_match('/^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/', $color, $matches)) {
$rgb = [intval($matches[1]), intval($matches[2]), intval($matches[3])];
$hex = rgbToHex($rgb);
$name = array_search($hex, $namedColors) ?: "N/A";
} else {
return false;
}
break;
default:
return false;
}
return [
'hex' => $hex,
'rgb' => $rgb,
'name' => $name,
];
}
function hexToRgb($hex)
{
$hex = str_replace("#", "", $hex);
return [
hexdec(substr($hex, 0, 2)),
hexdec(substr($hex, 2, 2)),
hexdec(substr($hex, 4, 2))
];
}
function rgbToHex($rgb)
{
return sprintf("#%02x%02x%02x", $rgb[0], $rgb[1], $rgb[2]);
}
ซึ่งฉันอยากทราบว่าพอมี ไลบรารี่ของ Javascript ที่สามารถทำงานได้เหมือนกับฟังก์ชันของฉันบ้างไหม โดยฉันต้องการนำมาใช้แทนฟังก์ชันตัวนี้