Usando C # estaba tratando de desarrollar los siguientes dos. La forma en que lo estoy haciendo puede tener algún problema y necesitar su amable consejo. Además, no sé si existe algún método para hacer lo mismo.
private static String HexConverter(System.Drawing.Color c)
{
String rtn = String.Empty;
try
{
rtn = "#" + c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2");
}
catch (Exception ex)
{
//doing nothing
}
return rtn;
}
private static String RGBConverter(System.Drawing.Color c)
{
String rtn = String.Empty;
try
{
rtn = "RGB(" + c.R.ToString() + "," + c.G.ToString() + "," + c.B.ToString() + ")";
}
catch (Exception ex)
{
//doing nothing
}
return rtn;
}
Gracias.
c#
asp.net
rgb
system.drawing.color
Nazmul
fuente
fuente

Respuestas:
No puedo ver el problema aquí. El código me parece bien.
Lo único que ocurre es que los bloques try / catch son redundantes - El color es una estructura y R, G y B son bytes, por lo que c no puede ser nulo y
c.R.ToString(),c.G.ToString()yc.B.ToString()en realidad no puede fallar (el La única forma en que puedo verlos fallar es con unNullReferenceException, y ninguno de ellos puede ser nulo).Puedes limpiar todo usando lo siguiente:
fuente
Puede hacerlo simple y usar el traductor de color nativo:
Luego divida los tres pares de colores en forma entera:
fuente
Si puede usar C # 6 o superior, puede beneficiarse de las cadenas interpoladas y reescribir la solución de @Ari Roth de esta manera:
C # 6:
También:
thispara usarlos como métodos de extensiones.stringlugar del nombre de la clase.fuente
p.ej
Esto puede evitar el truco de KnownColor.
fuente
Encontré un método de extensión que funciona bastante bien
Ref: https://social.msdn.microsoft.com/Forums/en-US/4c77ba6c-6659-4a46-920a-7261dd4a15d0/how-to-convert-rgba-value-into-its-equivalent-hex-code? forum = winappswithcsharp
fuente
X2lugar deX, de lo contrario podría obtener en1lugar de01entonces será un problema.X2eso no necesitas todos loscolor.B.ToString("X").Length == 1 ?ternaries.Para el código hexadecimal intente esto
& 0x00FFFFFFPara RGB uno
Red,Green,BluevaloresImplementación
fuente