c# 光学三原色混合,颜色叠加-dong
东的备注:
光的三原色:红、绿、蓝
红+绿=黄
红+蓝=品红
蓝+绿=青
红+绿+蓝=白
无颜色为黑
下看代码
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的更多相关文章
- 在 html 中用加色法混合颜色
概要 本文通过解决一个假想的问题介绍了 css screen 混合模式,并介绍了如何用 svg 滤镜.canvas 2d.canvas webgl 实现相同的效果. 问题 下面的图片演示三种颜色光叠加 ...
- Atitti 图像处理 图像混合 图像叠加 blend 原理与实现
Atitti 图像处理 图像混合 图像叠加 blend 原理与实现 混合模式 编辑 本词条缺少信息栏,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 混合模式是图像处理技术中的一个技术名词,不 ...
- NeHe OpenGL教程 第三课:颜色渲染
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 基于OpenCV的火焰检测(三)——HSI颜色判据
上文向大家介绍了如何用最简单的RGB判据来初步提取火焰区域,现在我要给大家分享的是一种更加直观的判据--HSI判据. 为什么说HSI判据是更加直观的判据呢?老规矩,先介绍一下HSI色彩模型: HSI颜 ...
- 颜色叠加模式:mix-blend-mode
文章转自叠加模式 http://www.cgspread.com/3551.html 注释:1.混合模式的数学计算公式,另外还介绍了不透明度.2.这些公式仅适用于RGB图像,对于Lab颜色图像而言,这 ...
- OpenGL(三) RGBA颜色设置
OpenGL支持两种颜色模式:一种是RGBA,一种是颜色索引模式. 像素点附加颜色信息之后,就必须为每一个像素点额外分配一个内存空间保存该点的颜色信息,对于RGBA颜色模式,保存的数据直接代表了颜色, ...
- iOS中的图像处理(三)——混合运算
有时候,单独对一张图像进行处理是很难或者根本达不到我们想要的效果的.一个好的滤镜效果的诞生,往往要经过很多复杂步骤.细致微调.图片应用效果观察以及很多图层叠加. 我在JSWidget上发现了一些常用混 ...
- java:HTML(table表格,ul列表)和CSS(导入.css文件,三种定义颜色方式,三种样式选择器,a标签属性顺序,)
1.重点掌握: html: 1.form表单:input,checkbox,seelct,radio,button,submit 2.table表格:thead-->tr-->th;tbo ...
- JavaScript 计算两个颜色叠加值
function multiply(rgb1, rgb2) { var result = [], i = 0; for( ; i < rgb1.length; i++ ) { result.pu ...
- 【Web前端HTML5&CSS3】05-样式继承与其他概念
笔记来源:尚硅谷Web前端HTML5&CSS3初学者零基础入门全套完整版 目录 样式继承与其他概念 1. 继承 2. 选择器的权重 3. 长度单位 像素 屏幕分辨率 图像分辨率 百分比 em ...
随机推荐
- C++与Java的API对比(集合操作等方面)
转载请注明出处(- ̄▽ ̄)- 个人第一篇博客,觉得不错就点个"推荐"吧 φ(゜▽゜*)♪ 虽然自己是先学的C++,再学的Java,但是相对而言,自己写Java比写C++要相对多一些 ...
- HCL实验6:静态路由
拓扑图 步骤: 连线,路由器与路由器通过S端口连接 配置好PC 配置路由器端口IP 配置路由器的下一跳地址(静态路由) 详细步骤 连线情况可见拓扑图 配置好PC 端口IP R1 [R1]int g0/ ...
- 【阅读笔记】超分之LANR-NLM算法
论文信息 [Single Image Super-Resolution via Locally Regularized Anchored Neighborhood Regression and Non ...
- 上班第一天 Android 环境配置
其实是昨天把大概 回归Android开发第一天 学会查 然后等待 反正我是不希望以后再查了 写出来吧 去谷歌那边把android studio下载下来 更新jdk版本(与传统的java开发不同 高版本 ...
- c# 文件在线预览功能
using DocumentFormat.OpenXml.Packaging; using DocumentFormat.OpenXml.Wordprocessing; using DocumentF ...
- Avalonia项目在OpenKylin运行踩坑
Avalonia项目在OpenKylin运行踩坑 本篇博客记录OpenKylin开源操作系统中运行Avalonia项目遇到的各种问题,会一直更新,最新的内容请点击文末的链接跳转到我的博客原文地址查看. ...
- Angular:error TS2717: Subsequent property declarations must have the same type. Property 'contentRect' mu st be of type 'DOMRectReadOnly', but here has type 'DOMRectReadOnly'.
解决方案 在tsconfig.json的compilerOptions选项中添加如下内容"skipLibCheck": true. 如下图所示 之后重新启动项目. 如下图启动成功
- PostgreSql: 安装与链接
环境介绍 使用宝塔面板,在阿里云中安装PostgreSql,并使用DataGrip在本地进行链接 postgresql 配置 安装postgresql 在宝塔中安装postgresql 管理器 在此处 ...
- Yunfly 一款高效、性能优异的 node.js web 框架
介绍 Yunfly 一款高性能 Node.js WEB 框架, 使用 Typescript 构建我们的应用. 使用 Koa2 做为 HTTP 底层框架, 使用 routing-controllers ...
- LeetCode 周赛上分之旅 # 37 多源 BFS 与连通性问题
️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越 ...