티스토리 뷰
public static bool MotionBlur(ref Bitmap bmp, int range, double angle) { if (bmp.PixelFormat != PixelFormat.Format24bppRgb) return false; if (range < 2) return false; int w = bmp.Width; int h = bmp.Height; angle += 180; double sn = Math.Sin(angle * Math.PI / 180d); double cs = Math.Cos(angle * Math.PI / 180d); int[] dx = new int[range]; int[] dy = new int[range]; for (int i = 0; i < range; i++) { dx[i] = (int)(cs * (i + 1) + 0.5d); dy[i] = (int)(sn * (i + 1) + 0.5d); } int xx, yy, rr, gg, bb, count; Bitmap tmp = bmp.Clone() as Bitmap; BmpProc24 src = new BmpProc24(tmp); BmpProc24 dst = new BmpProc24(bmp); for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { src.SetXY(x, y); rr = src.R; gg = src.G; bb = src.B; count = 1; for (int i = 1; i <= range; i++) { xx = x + dx[i - 1]; yy = y + dy[i - 1]; if ((xx < 0) | (xx > w - 1) | (yy < 0) | (yy > h - 1)) { continue; } src.SetXY(xx, yy); rr += src.R; gg += src.G; bb += src.B; count++; } dst.SetXY(x, y); dst.R = (byte)(rr / count); dst.G = (byte)(gg / count); dst.B = (byte)(bb / count); } ImgUtils.CallDispose(dst, src, tmp); return true; }
'my Programing > etc..' 카테고리의 다른 글
Tistory 에 SyntaxHighlighter 적용하기 (1) | 2010.01.28 |
---|---|
완성형 코드 표 (7) | 2009.09.18 |
오늘의 작업물.. (0) | 2009.08.28 |
#pragma 키워드 (0) | 2009.04.22 |
ARM 컴파일러로 컴파일시의 에러/경고 (0) | 2009.04.10 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 두바이
- theme
- Mac
- Lee Chung Yong
- WeatherWidget
- MaskFilterEffect
- awn
- VirtualBox
- java
- 기어스오브워2
- iOS4.0
- Cydia
- ubuntu
- ALC888
- 한글2008
- kext
- kext helper
- BigbusTour
- suave
- java vm
- J2ME
- 아이폰
- euro2008
- 우분투
- iPhone
- XBOX360
- 10.5.8
- 청용
- LockInfo
- 테일즈 오브 베스페리아
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함