RGB値からColorオブジェクトを作成するコードを紹介します。
概要
RGB値からColorオブジェクトを作成するにはColorクラスのFromArgbメソッドを用います。
書式
Color.FromArgb([Rの値],[Gの値],[Bの値]);
Color.FromArgb([アルファ値],[Rの値],[Gの値],[Bの値]);
記述例
Color c = Color.FromArgb(200,200,55);
Color color = Color.FromArgb(0x80, 0x60, 0x20);
プログラム例
UI
Visual Studioを起動し、Winformアプリケーションを作成します。
フォームのデザインは下図です。NumericUpDownコントロールを3つ、ボタンを1つ、Panelコントロールを一つ配置します。
NumericUpDownはデフォルトでは0~100までの値しか取れないためMaximumプロパティを変更します。Maximumプロパティを255に設定します。
コード
以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace CreateColorFromRGB
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int R = (int)numericUpDown_R.Value;
int G = (int)numericUpDown_G.Value;
int B = (int)numericUpDown_B.Value;
Color color = Color.FromArgb(R,G,B);
panel1.BackColor = color;
}
}
}
解説
int R = (int)numericUpDown_R.Value;
int G = (int)numericUpDown_G.Value;
int B = (int)numericUpDown_B.Value;
にて、スピンボックスコントロール(NumericUpDown)からR,G,Bの値を取得します。
Color color = Color.FromArgb(R,G,B);
スピンボックスコントロールで取得した値を用いてColorオブジェクトを作成します。FromArgbメソッドを用います。
FromArgbメソッドで作成したColorオブジェクトをパネルの背景色に設定します。
panel1.BackColor = color;
スピンボックスに値を設定してボタンを押すとスピンボックスに設定したR,G,Bの値の色をパネルの背景色に設定する動作となります。
実行結果
プロジェクトを実行します。下図のウィンドウが表示されます。
ボタンをクリックするとスピンコントロールの数値を用いて色を作成しパネルの背景色を変更します。初期状態では3つのスピンコントロールともに0のため、パネルの色は黒になります。
スピンボックスの値を変更して、ボタンを押すとスピンボックスに設定したRGB値の色をパネルの背景色に設定します。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-07
作成日: 2012-12-14