이것도 역시 Bitmap의 컬러값을 이용하여,변경하는 함수이다.
function BlurHorizontal (source, dest, radius) {
for (y = 0; y < height; ++y) {
for (x = 0; x < width; ++x) {
total = 0
for (kx = -radius; kx <= radius; ++kx)
total += source(x + kx, y)
dest(x, y) = total / (radius * 2 + 1)
}
}
}
function BlurVertical (source, dest, radius) {
for (x = 0; x < width; ++x) {
for (y = 0; y < height; ++y) {
total = 0
for (ky = -radius; ky <= radius; ++ky)
total += source(x, y + ky)
dest(x, y) = total / (radius * 2 + 1)
}
}
}
function Blur (source, dest, radius) {
BlurHorizontal(source, temp, radius)
BlurVertical(temp, dest, radius)
}
중요한 건 , 모든 연산이 CPU에서 하기 때문에.
매번 블러를 적용시킬려고 하면, 속도가 현저하게 저하되는 것을 느낄 수 있을 것 같다.
먼가 Opengl es 내적으로 GPU를 이용하는 방법을 빨리 찾아야 할 것 같다.
어렵다 정말...^^;;;
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[ Android Opengl es 2.0 ] Vertex배열을 이용하여 간단한 도형 만들기 (0) | 2011.10.06 |
---|---|
[ Android Opengl es 2.0 ] 기본적인 흐름도. (0) | 2011.10.06 |
[ Android ] Sockettimeout에 대해... (4) | 2011.09.20 |
[ Android ] Offset까지 포함한 전체 사이즈 구하기. (3) | 2011.09.16 |
[ Android ] Opengl es 2.0 다시 그리기 (0) | 2011.09.06 |