东的备注:

光的三原色:红、绿、蓝

红+绿=黄

红+蓝=品红

蓝+绿=青

红+绿+蓝=白

无颜色为黑

下看代码

            Bitmap image1 = new Bitmap(500, 500);//红
Bitmap image2 = new Bitmap(500, 500);//绿
Bitmap image3 = new Bitmap(500, 500);//蓝
Bitmap image4 = new Bitmap(500, 500);//混合
Random ran = new Random(); Graphics g = Graphics.FromImage(image1);
SolidBrush brush = new SolidBrush(Color.FromArgb(255,255,0,0));//请勿使用Color.Red 混合后存在色差
SolidBrush brushBackGroud = new SolidBrush(Color.FromArgb(255, 0, 0, 0));
g.FillRectangle(brushBackGroud, new Rectangle(0, 0, 500, 500));
for (int i = 0; i < 10; i++)
{
int x= ran.Next(10, 490);
int y = ran.Next(10, 490);
int width = 80;
int height = 80;
g.FillEllipse(brush,x,y,width,height);
}
g = Graphics.FromImage(image2);
brush = new SolidBrush(Color.FromArgb(255, 0, 255, 0));//请勿使用Color.Green 混合后存在色差
brushBackGroud = new SolidBrush(Color.FromArgb(255, 0, 0, 0));
g.FillRectangle(brushBackGroud, new Rectangle(0, 0, 500, 500));
for (int i = 0; i < 10; i++)
{
int x = ran.Next(10, 490);
int y = ran.Next(10, 490);
int width = 80;
int height = 80;
g.FillEllipse(brush, x, y, width, height);
}
g = Graphics.FromImage(image3);
brush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));//请勿使用Color.Blue 混合后存在色差
brushBackGroud = new SolidBrush(Color.FromArgb(255, 0, 0, 0));
g.FillRectangle(brushBackGroud, new Rectangle(0, 0, 500, 500));
for (int i = 0; i < 10; i++)
{
int x = ran.Next(10, 490);
int y = ran.Next(10, 490);
int width = 80;
int height = 80;
g.FillEllipse(brush, x, y, width, height);
}
//混合
for (int i = 0; i < 500; i++)
{
for (int j = 0; j < 500; j++)
{
image4.SetPixel(i, j, Color.FromArgb(255, image1.GetPixel(i, j).R > 128 ? 255 : 0, image2.GetPixel(i, j).G > 128 ? 255 : 0, image3.GetPixel(i, j).B > 128 ? 255 : 0));
}
}
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox1.Image = image1;
pictureBox2.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox2.Image = image2;
pictureBox3.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox3.Image = image3;
pictureBox4.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox4.Image = image4;

最终实现效果

c# 光学三原色混合,颜色叠加-dong的更多相关文章

  1. 在 html 中用加色法混合颜色

    概要 本文通过解决一个假想的问题介绍了 css screen 混合模式,并介绍了如何用 svg 滤镜.canvas 2d.canvas webgl 实现相同的效果. 问题 下面的图片演示三种颜色光叠加 ...

  2. Atitti 图像处理 图像混合 图像叠加 blend 原理与实现

    Atitti 图像处理 图像混合 图像叠加 blend 原理与实现 混合模式 编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 混合模式是图像处理技术中的一个技术名词,不 ...

  3. NeHe OpenGL教程 第三课:颜色渲染

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  4. 基于OpenCV的火焰检测(三)——HSI颜色判据

    上文向大家介绍了如何用最简单的RGB判据来初步提取火焰区域,现在我要给大家分享的是一种更加直观的判据--HSI判据. 为什么说HSI判据是更加直观的判据呢?老规矩,先介绍一下HSI色彩模型: HSI颜 ...

  5. 颜色叠加模式:mix-blend-mode

    文章转自叠加模式 http://www.cgspread.com/3551.html 注释:1.混合模式的数学计算公式,另外还介绍了不透明度.2.这些公式仅适用于RGB图像,对于Lab颜色图像而言,这 ...

  6. OpenGL(三) RGBA颜色设置

    OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式. 像素点附加颜色信息之后,就必须为每一个像素点额外分配一个内存空间保存该点的颜色信息,对于RGBA颜色模式,保存的数据直接代表了颜色, ...

  7. iOS中的图像处理(三)——混合运算

    有时候,单独对一张图像进行处理是很难或者根本达不到我们想要的效果的.一个好的滤镜效果的诞生,往往要经过很多复杂步骤.细致微调.图片应用效果观察以及很多图层叠加. 我在JSWidget上发现了一些常用混 ...

  8. java:HTML(table表格,ul列表)和CSS(导入.css文件,三种定义颜色方式,三种样式选择器,a标签属性顺序,)

    1.重点掌握: html: 1.form表单:input,checkbox,seelct,radio,button,submit 2.table表格:thead-->tr-->th;tbo ...

  9. JavaScript 计算两个颜色叠加值

    function multiply(rgb1, rgb2) { var result = [], i = 0; for( ; i < rgb1.length; i++ ) { result.pu ...

  10. 【Web前端HTML5&CSS3】05-样式继承与其他概念

    笔记来源:尚硅谷Web前端HTML5&CSS3初学者零基础入门全套完整版 目录 样式继承与其他概念 1. 继承 2. 选择器的权重 3. 长度单位 像素 屏幕分辨率 图像分辨率 百分比 em ...

随机推荐

  1. Springcloud2021+Nacos2.2+Dubbo3+Seata1.6实现分布式事务

    示例代码地址:https://gitee.com/gtnotgod/Springcloud-alibaba.git 更详细参考Gitee完整的项目:https://gitee.com/gtnotgod ...

  2. VSCode 编辑器的基本配置

    VSCode 编辑器的基本配置 在正式开始本文的内容之前,请允许我先做一些自我介绍: 严格来说,我是个自由职业者,经常会参与一些计算机专著的写作与翻译工作(主要作品如下图所示),业余偶尔也会有一些机会 ...

  3. 即构SDK新增焦点语音功能,可实现特定用户语音的聚焦

    2021年,即构SDK每月迭代如期而至.今年,我们会着重介绍每月SDK的重要新增功能,让大家更清晰的了解到这些新功能的特性及应用场景. 重点新增功能 多人语音通话场景下的焦点语音功能 功能介绍 即构S ...

  4. Point Free

    这是一种函数编码模式: 把数据处理的过程定义成和数据无关的合成运算,不需要用到数据参数,只是简单合成运算步骤,但需要定义一些辅助的基本运算函数. for example:  采用了lodash的fp ...

  5. [Spring+SpringMVC+Mybatis]框架学习笔记:前言_目录

    下一章:[Spring+SpringMVC+Mybatis]框架学习笔记(一):SpringIOC概述 前言 本笔记用于记录本人(Steven)的SSM框架学习历程,仅用作学习.交流,不用于商业用途, ...

  6. 【持续更新】C++ 并不完全是 C 的超集!

    一些容易被忽略的 C 与 C++ 的不兼容特性 头文件和命名空间 C 标准库头文件名在 C++ 中通常去除扩展名,并加上 c 前缀,如: stdio.h -> cstdio stdlib.h - ...

  7. 号外号外!首届开源 AI 游戏挑战赛圆满结束!

    北京时间 7 月 8 日到 7 月 10 日, 我们举办了 首届开源 AI 游戏开发挑战赛.这是一场激动人心的赛事活动,游戏开发者在紧迫的 48 小时内使用 AI 创造.创新有创意的游戏. 本次赛事活 ...

  8. 春秋云镜像-CVE-2022-0788

    准备: 攻击机:win10. 靶机:春秋云镜像-CVE-2022-0788. 写这个的时候在网上想查找下该漏洞的利用方式,没有找到相关的资料,因此记录下自己通过这个靶场的poc与exp. curl ' ...

  9. 部署属于自己的New bing Ai

    该项目来源 https://github.com/adams549659584/go-proxy-bingai 项目体验地址 https://bing.vcanbb.top/web/#/ 项目介绍 基 ...

  10. 设置服务账号Service Accounts(sa)的token不挂载到pod

    目录 一.系统环境 二.前言 三.Service Accounts(sa)简介 四.在pod里设置sa的token不挂载到pod 五.在sa里设置sa对应的token不挂载到pod上 六.总结 一.系 ...