Re: [問題] 請問圖片模糊化

看板C_Sharp (C#)作者 (....)時間18年前 (2007/08/23 13:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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)
文章代碼(AID): #16pHuLnT (C_Sharp)
討論串 (同標題文章)
文章代碼(AID): #16pHuLnT (C_Sharp)