C#实现颜色空间转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一颜色空间转换

下载链接:/share/link?shareid=139708&uk=521254270 一、实验目的

理解颜色空间的原理,并实现各颜色空间的转换算法.

二、实验内容和步骤

请编程实现以下转换算法:

1.RGB ←→CMY

2.RGB ←→ HSL

3.RGB ←→ HSV

三、实验要求

1. 实现语言不做要求, C, C++, Java, Matlab均可

2. 要求按照课本上的算法实现

3. 请关键语句都加上注释

四、实验结果(本次实验采用C#语言)

1.实验界面截图:

(1)初始截图

(2)操作后截图

2.实验代码

using System;

using System.Collections.Generic;

using ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace RGBChange

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

//选择转换模式

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{

if (comboBox1.Text == "RGB-->CMY" || comboBox1.Text == "RGB--->HSL" || comboBox1.Text == "RGB-->HSV")

{

label6.Text = "请输入数据,R:[0,255],G:[0,255],B:[0,255]";

label1.Text = "R:";

label2.Text = "G:";

label3.Text = "B:";

}

if (comboBox1.Text == "CMY-->RGB" )

{

label6.Text = "请输入数据,C:[0,360],M:[0,1],Y:[0,1]";

label1.Text = "C:";

label2.Text = "M:";

label3.Text = "Y:";

}

if (comboBox1.Text == "HSV--->RGB" )

{

label6.Text = "请输入数据,H:[0,360],S:[0,1],:[0,1] ";

label1.Text = "H:";

label2.Text = "S:";

label3.Text = "V:";

}

if (comboBox1.Text == "HSL---->RGB" ){

label6.Text = "请输入数据,H:[0,360],S:[0,1],L:[0,1]";

label1.Text = "H:";

label2.Text = "S:";

label3.Text = "L:";

}

}

private void textBox3_TextChanged(object sender, EventArgs e) {

}

//判断输入数据是否合理

private void button1_Click(object sender, EventArgs e)

{

if (comboBox1.Text == "RGB-->CMY")

{

double r = Convert.ToDouble(textBox1.Text);

double g = Convert.ToDouble(textBox2.Text);

double b = Convert.ToDouble(textBox3.Text);

if (r > 255 || r < 0 || g > 255 || g < 0 || b > 255 || b < 0)

{

label6.Text = "数据输入有误,请重新输入";

textBox1.Text = "";

textBox2.Text = "";

textBox3.Text = "";

}

else

{

rgbTocmy(r, g, b);

}

}

if (comboBox1.Text == "CMY-->RGB")

{

double c = Convert.ToDouble(textBox1.Text);

double m = Convert.ToDouble(textBox2.Text);

double y = Convert.ToDouble(textBox3.Text);

if (c>1||m>1||y>1||c<0||m<0||y<0)

{

label6.Text = "数据输入有误,请重新输入";

textBox1.Text = "";

textBox2.Text = "";

相关文档
最新文档