C# の ColorDialog Box によって返されるカラー コードを、KML/KMZ ファイル形式で使用される色形式に変換する方法を探しています。どんな情報でも大歓迎です!!
質問する
4522 次
2 に答える
2
何時間もの調査の後、私は自分の質問に答えました。
Kml は 8 桁の HEX カラー形式を使用します。赤の従来の 16 進形式は #FF0000 のようになります。Kml では、赤は FF0000FF のようになります。最初の 2 桁は不透明度 (アルファ) です。カラー形式は AABBGGRR です。色と不透明度を設定し、KML の属性に配置する文字列で返す方法を探していました。これが私の解決策です。
string color
string polyColor;
int opacity;
decimal percentOpacity;
string opacityString;
//This allows the user to set the color with a colorDialog adding the chosen color to a string in HEX (without opacity (BBGGRR))
private void btnColor_Click(object sender, EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
btnColor.BackColor = colorDialog1.Color;
Color clr = colorDialog1.Color;
color = String.Format("{0:X2}{1:X2}{2:X2}", clr.B, clr.G, clr.R);
}
}
//This method takes the Opacity (0% - 100%) set by a textbox and gets the HEX value. Then adds Opacity to Color and adds it to a string.
private void PolyColor()
{
percentOpacity = ((Convert.ToDecimal(txtOpacity.Text) / 100) * 255);
percentOpacity = Math.Floor(percentOpacity); //rounds down
opacity = Convert.ToInt32(percentOpacity);
opacityString = opacity.ToString("x");
polyColor = opacityString + color;
}
色の値を取得するより効率的な方法についてはオープンです
于 2013-09-20T12:45:19.857 に答える