我正在使用以下内容将RGB值转换为单个整数:
public static int RGBtoInt(int red, int greed, int blue)
{
return blue + green + (green * 255) + (red * 65536);
}
Run Code Online (Sandbox Code Playgroud)
但是努力编写一个反向方法,接受一个整数并返回单个RGB组件.
一些主题性的:
public static Vector3 IntToRgb(int value)
{
// calculations...
return new Vector3(red, green, blue);
}
Run Code Online (Sandbox Code Playgroud)
该Color.FromArgb(int)方法不是创建我需要的RGB颜色.
RGBtoInt上面的函数匹配OpenGL返回的RGB整数值,我正在寻找一个反向方法.这与此处使用的转换方法相同.
转换可以如下完成.
public static Vector3 IntToRgb(int value)
{
var red = ( value >> 0 ) & 255;
var green = ( value >> 8 ) & 255;
var blue = ( value >> 16 ) & 255;
return new Vector3(red, green, blue);
}
Run Code Online (Sandbox Code Playgroud)
据我了解,初始转换应按如下方式进行.
public static int RGBtoInt(int r, int g, int b)
{
return ( r << 0 ) | ( g << 8 ) | ( b << 16 );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2463 次 |
| 最近记录: |