**如下:
rgb->hsb[float型別版本]
/// /// hsb用float資料型別表示
///
static void rgb2hsb(int r, int g, int b, out float hue, out float sat, out float bri)
else
sat = (float)(maxval - minval) / sum;
}
//hue
if (maxval == minval)
else
if (g == maxval)
if (b == maxval)
if (hue > 360.0f)
}
}
rgb->hsb[int版本]
/// /// hsb用int資料型別表示,同winform中的colordialog中hsb的表示
///
static void rgb2hsb(int r, int g, int b, out int hue, out int sat, out int bri)
if (sat > 240)
if (bri > 240)
}
hsb->rgb
/// /// 傳入的hsb用int型表示,如果用float型表示,可將下面的轉換成float過程去掉
///
static void hsb2rgb(int hue, int sat, int bri, out int r, out int g, out int b)
else
}
if (sat > 240)
else
}
if (bri > 240)
else
}
float h = hue / 239.0f;
float s = sat / 240.0f;
float l = bri / 240.0f;
//end:hsb轉換為float
float red = 0, green = 0, blue = 0;
float d1, d2;
if (l == 0)
else
else
;
float rgb = new float ;
for (int i = 0; i < 3; i++)
if (d3[i] > 1.0f)
if (6.0f * d3[i] < 1.0f)
else
else
else
}
}
}
red = rgb[0];
green = rgb[1];
blue = rgb[2];
}
}
red = 255.0f * red;
green = 255.0f * green;
blue = 255.0f * blue;
if (red < 1)
else
}
if (green < 1)
else
}
if (blue < 1)
else
}
r = (int)(red + 0.5);
g = (int)(green + 0.5);
b = (int)(blue + 0.5);
}
YUV顏色編碼格式
yuv 顏色編碼採用的是明亮度和色度來指定畫素的顏色,而色度又定義了顏色的兩個方面 色調和飽和度。其中 其中 其歷史 是歐洲的電視系統採用的一種顏色編碼方式,主要是為了讓訊號支援新的彩色電視,但也繼續支援黑白電視。如果是黑白電視,只使用 y 通道訊號就足夠。yuv色彩編碼格式由其色度抽樣方式 儲存方...
C 顏色格式轉換小結
做專案的過程中要調整介面的顏色,但是顏色的格式又多種多樣,這裡面的格式轉換就成了乙個問題了,現把我用過的轉換方法小結一下 1 123456 轉 system.drawing.color 顏色 16進製制轉成rgb 設定16進製制顏色 ffffff public static system.drawi...
rar格式與zip格式
區別一 zip 的安裝比較大,並僅僅有英文版 漢化包 rar有官方的簡體中文版,並且安裝很小,不足一兆 區別二 winrar 的壓縮率較高,而zip 的壓縮率更低 區別三 zip 支援的格式很多,但已經較老,不大流行 rar支援格式也很多,並且還是流行的 區別四 zip 僅僅能夠壓縮成zip 格式,...