东的备注:

光的三原色:红、绿、蓝

红+绿=黄

红+蓝=品红

蓝+绿=青

红+绿+蓝=白

无颜色为黑

下看代码

            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. Typecho左右侧广告区域展示恋爱线时间

    该教程适用typecho动态博客框架,handsome主题,展示恋爱线时间,效果立于博客网页左侧右侧等区域,展示如下: 教程 typecho动态博客框架,handsome主题下,将下面代码粘贴到后台设 ...

  2. PTA 21级数据结构与算法实验8—排序

    目录 7-1 统计工龄 7-2 寻找大富翁 7-3 点赞狂魔 7-4 插入排序还是归并排序 7-5 插入排序还是堆排序 7-6 逆序对 7-7 堆排序 7-8 石子合并 7-9 第k小 7-10 快速 ...

  3. 初始elasticSearch

    elasticSearch 大致印象 为什么用? mysql更擅长于crud等操作,当一张表达到百万级别时,检索速度过慢 es检索速度快 基本概念 Index索引(两层意思) 动词:类似mysql的i ...

  4. Asp.Net MVC中Action跳转小结(转载)

    来源: https://www.cnblogs.com/surfing/p/3542826.html 首先我觉得action的跳转大致可以这样归一下类,跳转到同一控制器内的action和不同控制器内的 ...

  5. 在虚拟机VMware上安装OpenKylin开源操作系统

    在虚拟机(VMware)上安装OpenKylin开源操作系统 今天我们一下学习下开放麒麟系统的安装.也是我的开源项目在OpenKylin上运行的实践. 希望通过该项目了解和学习Avalonia开发的朋 ...

  6. 关于 ModelScope 的视频 “AI 换脸” 优化方案

    前言 前面一文,初步完成了一下 "AI 换脸" 视频处理程序.完成了视频拆帧,拆帧图片人脸融合,已经音频提取和最后的人脸融合图片的整合(也就是将图片和音频组成视频).但是在人脸融合 ...

  7. C#.NET 国密SM3 HASH 哈希 与JAVA互通 ver:20230803

    C#.NET 国密SM3 HASH 哈希 与JAVA互通 ver:20230803 .NET 环境:.NET6 控制台程序(.net core). JAVA 环境:JAVA8,带maven 的JAVA ...

  8. redux的三个概念与三大核心

    1.什么是redux?一个组件里可能会有很多的状态,比如控制某个内容显示的flag,从后端获取的展示数据,那么这些状态可以在自己的单个页面进行管理,也可以选择别的管理方式,redux就是是一种状态管理 ...

  9. 如何选择最适合您的Excel处理库?

    摘要:本文由葡萄城技术团队于博客园原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 引言 GcExcel和POI是两个应用于处理Excel文件的技 ...

  10. [kubernetes]二进制部署k8s集群

    0. 前言 采用二进制部署三主三工作节点的k8s集群,工作节点和Master节点共用服务器,因此只用到了三台服务器.master采用haproxy + keepalive实现高可用.实际生产环境中,建 ...