作者Rokund (....)
看板C_Sharp
标题Re: [问题] 请问图片模糊化
时间Thu Aug 23 13:41:40 2007
※ 引述《del680202 (飘落的樱花)》之铭言:
: 之前有找到演算法
: 说让每个像素等於他上下左右像素的RGB的平均值
: 但是这种做法太耗时间了 1024*768的图片就不知道要花多久
: 後来小弟有找到比较快的方法 就是用指标的方式去巡
: BitmapData bmData = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width,
: bitmap.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
: int stride = bmData.Stride;
: System.IntPtr Scan0 = bmData.Scan0;
: unsafe {
: byte* p = (byte*)(void*)Scan0;
: int nOffset = stride - bitmap.Width * 3;
: int nWidth = bitmap.Width * 3;
: byte b = p[0];
: for (int y = 1; y < bitmap.Height; ++y)
: {
: for (int x = 0; x < nWidth; ++x)
: {
: p[0]=b;
: ++p;
: }
: p += nOffset;
: }
: }
: bitmap.UnlockBits(bmData);
: 但是这种方法没办法指定他上下左右像素的RGB值
: 请问用第2种方法要怎麽做到图片模糊化的效果
: 小弟搜google都只有反色差 灰阶 跟打光的处理而已...~"~
其实看不太懂第二个方法是怎麽存取pixel的,帮不上XD。
但如果要做模糊化,第一个方法本身就是要做这麽多运算呀!
除非你改影像模糊化的算法
还是你觉得阵列索引比指标累加还要花时间?
一般来说应该是会用Mask来完成第一段的方法,看起
来比较简洁,也可以透过更改Mask中的值来做不同的效果。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.136.147.164
※ 编辑: Rokund 来自: 140.136.147.164 (08/23 13:42)