如何將hexadecimal
字符串顏色#FF0022
值轉換爲RGB
顏色C++
?從十六進制字符串顏色到RGB顏色
來自:
#FF0022
到
r:255
g:0
b:34
我不知道該怎麼做,我已搜查谷歌沒有運氣,請告訴我怎麼說,所以我可以瞭解更多信息。
如何將hexadecimal
字符串顏色#FF0022
值轉換爲RGB
顏色C++
?從十六進制字符串顏色到RGB顏色
來自:
#FF0022
到
r:255
g:0
b:34
我不知道該怎麼做,我已搜查谷歌沒有運氣,請告訴我怎麼說,所以我可以瞭解更多信息。
下面是一個代碼示例:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
std::vector<std::string> SplitWithCharacters(const std::string& str, int splitLength) {
int NumSubstrings = str.length()/splitLength;
std::vector<std::string> ret;
for (int i = 0; i < NumSubstrings; i++) {
ret.push_back(str.substr(i * splitLength, splitLength));
}
// If there are leftover characters, create a shorter item at the end.
if (str.length() % splitLength != 0) {
ret.push_back(str.substr(splitLength * NumSubstrings));
}
return ret;
}
struct COLOR {
short r;
short g;
short b;
};
COLOR hex2rgb(string hex) {
COLOR color;
if(hex.at(0) == '#') {
hex.erase(0, 1);
}
while(hex.length() != 6) {
hex += "0";
}
std::vector<string> colori=SplitWithCharacters(hex,2);
color.r = stoi(colori[0],nullptr,16);
color.g = stoi(colori[1],nullptr,16);
color.b = stoi(colori[2],nullptr,16);
return color;
}
int main() {
string hexcolor;
cout << "Insert hex color: ";
cin >> hexcolor;
COLOR color = hex2rgb(hexcolor);
cout << "RGB:" << endl;
cout << "R: " << color.r << endl;
cout << "G: " << color.g << endl;
cout << "B: " << color.b << endl;
return 0;
}
我不相信你嘗試,因爲有噸結果使用谷歌(RGB串C,RGB字符串值...) –
如果你知道剩下的很簡單:將它分成3個組成部分,FF,00和22.根據情況轉換爲小數。 –
https://github.com/kkaefer/css-color-parser-cpp –