问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于C# winfrom编程 BitmapData绘图问题

发布网友 发布时间:21小时前

我来回答

1个回答

热心网友 时间:21小时前

问题在这里:
for (int col = -1; col <= 1; col++)
for (int row = -1; row <= 1; row++)
{
r += plos[0] * Gauss[Index];
g += plos[1] * Gauss[Index];
b += plos[2] * Gauss[Index];
Index++;
}

如果我理解得不错的话,高斯算法是要去取周围的点的值,计算出当前点的值的。
但是你这个地方9次读取原像素颜色时,都是读的本点的。加权累计之后的平均数,当然还是等于本点的值。
-----------------------
调好的程序在下面。
中间对于指针的变化方面有bug.我改为计算偏移的方式了。

还有,这个程序处理完之后,会自动为图片加一个黑边。原因是没有处理最外的像素。如果要处理最边上的像素,就要在值旧值时考虑是不是已经越出边界。

还有,10分是不是少了点。多点儿吧!
-----------------------
private void Image_Soften()
{
try
{
int Height = this.pictureBox1.Image.Height;
int Width = this.pictureBox1.Image.Width;
Bitmap bitmap = new Bitmap(Width, Height, PixelFormat.Format32bppRgb);
Bitmap MyBitmap = (Bitmap)this.pictureBox1.Image;

BitmapData oldData = MyBitmap.LockBits(new Rectangle(0, 0, Width, Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppRgb);
BitmapData newData = bitmap.LockBits(new Rectangle(0, 0, Width, Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppRgb);
unsafe
{
byte* plos = (byte*)(oldData.Scan0.ToPointer());
byte* pbg = (byte*)(newData.Scan0.ToPointer());
//高斯模板
int[] Gauss = { 1, 2, 1, 2, 4, 2, 1, 2, 1 };
for (int i = 1; i < Width - 1; i++)
{
for (int j = 1; j < Height - 1; j++)
{
int r = 0, g = 0, b = 0;
int Index = 0;

for (int col = -1; col <= 1; col++)
{
for (int row = -1; row <= 1; row++)
{
int off = ((j + row) *(Width) + (i + col)) * 4;
r += plos[off + 0] * Gauss[Index];
g += plos[off + 1] * Gauss[Index];
b += plos[off + 2] * Gauss[Index];
Index++;
}
}
r /= 16;
g /= 16;
b /= 16;
//处理颜色值溢出
r = r > 255 ? 255 : r;
r = r < 0 ? 0 : r;
g = g > 255 ? 255 : g;
g = g < 0 ? 0 : g;
b = b > 255 ? 255 : b;
b = b < 0 ? 0 : b;
int off2 = (j * Width + i) * 4;
pbg[off2 + 0] = (byte)r;
pbg[off2 + 1] = (byte)g;
pbg[off2 + 2] = (byte)b;
}
}
bitmap.UnlockBits(newData);
MyBitmap.UnlockBits(oldData);
this.pictureBox1.Image = bitmap;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "信息提示");
}
}
关于C# winfrom编程 BitmapData绘图问题

Bitmap bitmap = new Bitmap(Width, Height, PixelFormat.Format32bppRgb);Bitmap MyBitmap = (Bitmap)this.pictureBox1.Image;BitmapData oldData = MyBitmap.LockBits(new Rectangle(0, 0, Width, Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppRgb);BitmapData newData = bitmap...

C#的BitmapData使用技巧介绍_C#的BitmapData使用技巧是什么

BitmapData dataOut = bmpOut.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);接下来,使用unsafe代码块,我们将遍历每个像素的三个分量并进行处理:unsafe { byte* pIn = (byte*)(dataIn.Scan0.ToPointer());byte* pOut = (byte*)(dataOut.S...

我用C#做winform,里面的透明图重叠的地方不透明要怎么办?

int height = bitmap.Height; BitmapData bmData = bitmap.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadWrite,PixelFormat.Format24bppRgb); byte* p = (byte*)bmData.Scan0; int offset = bmData.Stride - width * 3; int p0, p1, p2; // 记录...

C#描点为什么这么慢?

如果要高效地描点,最好是使用Bitmap的LockBits,直接操作内存的方式来更改位图数据,然后将位图绘制到你的Graphic private void button1_Click(object sender, EventArgs e) { Bitmap bmp = new Bitmap(1025, 768); BitmapData data = bmp.LockBits(new Rectangle(0, 0, 1025, 768...

C#如何利用bitmapdata翻转图片,求大神具体指导

public static Bitmap KiRotate(Bitmap bmp, float angle, Color bkColor)...{ int w = bmp.Width + 2;int h = bmp.Height + 2;PixelFormat pf;if (bkColor == Color.Transparent)...{ pf = PixelFormat.Format32bppArgb;} else ...{ pf = bmp.PixelFormat;} Bitmap tmp = new Bit...

(急)VC中gdi+ 里的bitmap类的lockbits函数

应该先分配一个缓冲区,然后将缓冲区的地址填写到lockedBitmapData的Scan0中。这个就是主要问题了,更多信息楼主见MSDN。P.S.LockBits函数声明的最后一个参数是IN OUT,不是单纯的OUT。伪形式应该是:[optional in] out --- Scan0是另外分配的存储空间,要么是函数分配的,要么是函数调用者分配的。...

C# 新建bitmap的时候出现parameter error报错!

两个问题:1、LinearGradientBrush 对象(就是那个 var b),它也需要 Dispose()。2、这个方法返回值是一个 Bitmap 对象,它在使用之后你 Dispose() 了吗?另外尽量不要手动执行 GC。

c#控件转bitmap

BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, width, height),ImageLockMode.WriteOnly, PixelFormat.Format8bppIndexed);//获取图像参数 int stride = bmpData.Stride; // 扫描线的宽度 int offset = stride - width; // 显示宽度与扫描线宽度的间隙 IntPtr iptr = bmpData....

请教一个C#中将byte[]数组转换为Image的问题

//锁定内存数据 BitmapData data=img.LockBits(new Rectangle(0,0,img.Width,img.Height),ImageLockMode.WriteOnly,PixelFormat.Format24bppRgb);//输入颜色数据 System.Runtime.InteropServices.Marshal.Copy(rgb, 0, data.Scan0, rgb.Length);img.UnlockBits(data);//解锁 g.DrawImage(img);//...

c#指针怎么显示成图片

BitmapData srcData = src.LockBits(rect, ImageLockMode.ReadWrite, src.PixelFormat);byte* srcByte = (byte*)srcData.Scan0;然后for循环把你的数据值放到指针srcByte里面,这样就显示成图片了 我这边有一个是把图片数据取出,你修改下就可以改为写入了。private static byte[] GetPixels(Bit...

mastercam编程教程 goc编程绘图命令图表 绘图软件coreldraw教程 hf线切割编程绘图教程 编程解决问题的一般过程是 goc编程绘图软件 绘图软件coreldraw 编程绘图 python简单绘图
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
内存卡有A1和A2之分吗? 为什么系统会说0x045421a2指令引用的内存0*0000000a不能为written或者... ...经济师考试科目及考试方式是什么?-中级经济师考试方式? 贵州2021中级经济师考试时间-全国中级经济师考试时间-中级经济师考试时 ... 贵州中级经济师的考试时间 马油的正确使用方法有哪些 你知道廊坊管道局中学怎么样吗? 廊坊管道局中学好不好啊!? 廊坊一中好还是管道局中学好? 公司确实无财产清偿债务如何办 C#,Bitmap map = new Bitmap(10000,10000);Graphics g = Graphics.From... c#中bitmap 的一个小问题 C# webbrowser 获得网易邮箱的验证码! 我的风行的网页总是打不开,下载东西显示获取服务器失败。如图:_百度... 为什么风行的缓冲老是0% 下载了最新的版本 风行为什么不是自动下载了???怎么可以设置自动下载呢? 我在风行电影下载的电影突然停了,是把什么设置了 我的风行下载不了,他说安装了一个更高版本的程序,所以不可以安装,这... 英雄联盟阿卡丽皮肤鬼舞姬怎么赠送给别人.知道的告诉下。去商城还是在... ...感觉有什么东西,感觉有一层膜在一样,要一直做清嗓的动作 在《听见你的声音》韩剧里,第四集那首歌是什么 韩剧《听见你的声音》第七集47:03出现的背景音乐是什么 妈妈嗓子不好,我送她什么好呢? 做仓管要用电脑吗? ...恐吓彗星把手机放在她家,那个手机铃声是什么歌? 我的电脑最下面,不管打开网页也好,QQ聊天窗口也好,不管打开什么都会出 ... 打开360浏览器怎么会出现三个窗口.还有我的QQ空间。我想去除它肿么办... 穆拉斯嗜眼吸虫科学分类 小鸮嗜眼吸虫科学分类 我的魔兽世界开全效窗口模式以后有QQ聊天窗口或者是开360画面就卡的像... c# 为什么我在绘制bitmap 运行时什么也没有呢 C#中Bitmap 类中的 System.Drawing.Rectangle(x,y,width,height) y坐... C#中的Bitmap应该传递什么类型的参数(解决后加分) 哪里有烧烤技术培训宵夜烧烤培训班 毛阿伊石像相关 【月亮的吊坠】雪翼的txt全集下载地址 关羽是不是被诸葛亮用计杀掉的 求作者为“捞月亮的人”的宏迪同人文《雪深深》,要 txt的,谢谢了!! C# Winform设置图片透明度。 winform 文件占用 我是这届的高中毕业生,我想问一下南京金肯职业技术学院现在是什么样 途观l刹车油多少公里更换 金肯学院好不好,值得去读吗? 径向跳动(端面各个点误差在2至3个丝之内)主要和哪些因素有关,数控车床... 盛一伦的男盆友是侣皓吉吉吗 请懂风水的高手进来帮我解决下办公室内有圆柱的风水问题 在3DSMAX中导入CAD样条线,为什么不再是弧形? QQ如何查看最近登录记录 常州有哪些比较好的初中呢 为什么有的男生喜欢让自己女朋友叫自己老公?