背景
對于我這種沒有專業美勞工員支援的開發者來說,從網上尋找參考圖是必須的,這樣往往就會遇到一個問題:這個圖檔各個部分的顔色代碼是多少?這裡介紹一些我得經驗供大家參考。
方案
就比如csnd的圖檔,我想知道這幾個英文字母的顔色代碼是多少,那麼我們把這個圖檔複制或者剪切一部分到我們的剪切闆中。
1、win10以上的桌面系統工作列都有這個搜尋的按鈕,點開它,搜尋"畫圖"(它是我們電腦自帶的繪圖軟體)
2、進入繪圖軟體
3、此時将我們的圖檔複制進去
4、點選繪圖軟體上的顔色選取器按鈕,然後點選你想要擷取顔色代碼的位置
5、點選完畢後顔色1按鈕的顔色就是你想要擷取的顔色
6、點選編輯顔色按鈕,就擷取其rgb值
7、轉換成我們想要的顔色代碼
由于我是用C#程式設計,可以使用Color的構造方法從rgb數值擷取該顔色,但是可能有的同學需要十六進制的代碼,這裡我編寫了一個C++轉換程式,以供參考吧。
#include<iostream>
using namespace std;
const char numberSet[]="0123456789ABCDEF";
void exchange(int colorNumber){
int high=colorNumber/16;
int low=colorNumber%16;
cout<<numberSet[high]<<numberSet[low];
}
int right(int colorNumber){
if(colorNumber>=0&&colorNumber<=255){
return 1;
}
return 0;
}
int main(){
int red;
int green;
int blue;
cout<<"請依次輸入紅,綠,藍的數值代号:";
cin>>red>>green>>blue;
cout<<"#";
if(right(red)){
exchange(red);
}else{
cout<<"紅有誤";
return 0;
}
if(right(green)){
exchange(green);
}else{
cout<<"綠有誤";
return 0;
}
if(right(blue)){
exchange(blue);
}else{
cout<<"藍有誤";
return 0;
}
return 0;
}