首页 > 编程语言 >c# winform 把彩色图片转换为灰色的图片,变灰,灰度图片,速度很快,safe,unsafe

c# winform 把彩色图片转换为灰色的图片,变灰,灰度图片,速度很快,safe,unsafe

时间:2023-04-27 17:06:19浏览次数:43  
标签:pictureBox1 int 彩色图片 Height Width 灰度 Result pixel 图片


把彩色图片转换为灰色的图片,直接用.net接口遍历每个像素点转换的效率非常低,800K的图片65万像素我的电脑要用5分钟,而用了unsafe,速度提高了几千倍,同样的图片只用了0.几秒

附一个常用的遍历像素点转换的代码

构造函数

public Tphc()
{
	InitializeComponent();
	this.pictureBox1.ImageLocation = "F:\\黑色头发.jpg";
}




按钮单击事件



private void button3_Click(object sender, EventArgs e)
{
    int Height = this.pictureBox1.Image.Height;
	int Width = this.pictureBox1.Image.Width;
	Bitmap bitmap = new Bitmap(Width, Height);
	Bitmap MyBitmap = (Bitmap)this.pictureBox1.Image;
	Color pixel;
	for (int x = 0; x < Width; x++)
	    for (int y = 0; y < Height; y++)
	    {
	        pixel = MyBitmap.GetPixel(x, y);
	        int r, g, b, Result = 0;
	        r = pixel.R;
	        g = pixel.G;
	        b = pixel.B;
	        //实例程序以加权平均值法产生黑白图像
	        int iType = 2;
	        switch (iType)
	        {
	            case 0://平均值法
	                Result = ((r + g + b) / 3);
	                break;
	            case 1://最大值法
	                Result = r > g ? r : g;
	                Result = Result > b ? Result : b;
	                break;
	            case 2://加权平均值法
	                Result = ((int)(0.7 * r) + (int)(0.2 * g) + (int)(0.1 * b));
	                break;
	        }
	        bitmap.SetPixel(x, y, Color.FromArgb(Result, Result, Result));
	    }
	this.pictureBox1.Image = bitmap;
}




黑色头发:http://heisetoufa.iteye.com/


标签:pictureBox1,int,彩色图片,Height,Width,灰度,Result,pixel,图片
From: https://blog.51cto.com/u_2543512/6231816

相关文章

  • c# winform 用代码生成一张只有一个像素点的图片,保存到硬盘里或者显示到panel里...
    只生成图片stringnullPath="C:\\黑色头发.jpg";Bitmapb=newBitmap(1,1);b.Save(nullPath);b.Dispose();生成图片并显示到panel里Bitmapb=newBitmap(this.panel1.Width,this.panel1.Height);this.panel1.DrawToBitmap(b,newRectangle(0......
  • antv x6 神奇的图片边框
    昨天才把html节点中的图片转成base格式的,今天就发现一个用户体验的问题;那么是啥呢?就是我从左侧的树形菜单中拖拽节点的时候(鼠标按下也是同样问题),发现节点的图片区域那里会出现一个边框,持续时间不是很长,就几毫秒的时间,但是当你连续拖拽几个不同节点的时候就会发现这个边框竟然又消......
  • LaTeX插入PDF图片空白太大,如何裁剪?
    仅用作记录见参考链接:https://blog.csdn.net/hanshuning/article/details/129610793网址:https://pdfresizer.com/cropLatex表格参考链接:https://www.tablesgenerator.com/......
  • 在linux系统里将图片通过代码打出来
    打开终端1,访问https://sourceforge.net/projects/aa-project/files打开后选择aa-lib和aview分别下载最新版本2,将这两个安装包上传到linux系统里,并解压。3,这两个包,分别./configure&&make&&makeinstall4,完成后,yuminstallImageMagick5,上传一张图片,使用asciiview......
  • 直播电商平台开发,发布多图片上传到服务器并实现图片预览功能
    直播电商平台开发,发布多图片上传到服务器并实现图片预览功能vue页面<viewclass="container1"><imagesrc="../../static/errorImage.jpg"mode="scaleToFill"@click="upload"></image><imagev-for="iteminimglist":src=&q......
  • 使用easyocr识别图片文字(本地图片和网络图片)
    fromPILimportImageimportrequestsfromioimportBytesIOimporteasyocrimportnumpyasnpfrompathlibimportPathfile_url=r'./img/1.jpg'#需识别的图片file_url=r"****7b00ea.jpg"split_symbol=''#默认空格为分隔......
  • 我用这个代码识别简单的图片为什么识别不出来?
    今日鸡汤我家襄水曲,遥隔楚云端。大家好,我是皮皮。一、前言前几天在Python黄金交流群【。】问了一个Python图像处理的问题,下图是截图:输出的结果是空白:二、实现过程这里【走进未来】给了一个可行的代码,importddddocrocr=ddddocr.DdddOcr()withopen('1.png','rb')asf:img_b......
  • 前端生成二维码及把页面转为图片保存到本地
    前端生成二维码及把页面转为图片保存到本地Bayi·于2021-12-2317:08:37发布847收藏3文章标签:前端javascript生成二维码页面转图片vue版权以vue项目为例,其他类型项目其实也是一样的所需components:QRCodehtml2canvasnpminstallqrcodejs2--savenpm......
  • vue 前端生成二维码,并转换为图片
    vue前端生成二维码,并转换为图片~牧马~于2021-05-2715:08:03发布2760收藏7分类专栏:vue文章标签:vue生成二维码自动生成的二维码转图片版权这篇文章主要是分享下自己的收获,也是自己遇到的问题:前端如何自己生成二维码?前端如何将生成的二维码转成图片并展示?......
  • Java自定义生成证书图片
    1、引入依赖<!--cmyk格式图片转换--><dependency><groupId>org.sejda.imageio</groupId><artifactId>webp-imageio</artifactId><version>0.1.6</version></dependen......