Android용 빠른 비트맵 흐림
Android에서 이미지에 흐림 필터를 적용하는 것은 시간이 많이 걸리는 프로세스일 수 있으며, 특히 큰 이미지의 경우 더욱 그렇습니다. . 이는 기존 방법이 이미지의 각 픽셀을 반복하므로 계산 비용이 많이 들 수 있기 때문입니다.
더 빠른 알고리즘 소개
이 기사에서는 전통적인 픽셀별 블러링 방식. Quasimondo에서 포팅된 이 알고리즘은 상자 흐림과 가우시안 흐림의 요소를 결합합니다.
이 알고리즘은 이미지를 스캔할 때 색상의 "이동 스택"을 생성하여 작동합니다. 이 스택은 오른쪽에 새로운 색상이 추가되고 가장 왼쪽의 색상이 제거되어 점진적으로 업데이트됩니다. 스택 상단의 나머지 색상은 스택에서의 위치에 따라 조정됩니다.
구현 세부 정보
제공되는 Java 코드 조각은 Android에서 알고리즘을 구현합니다. 세 가지 매개변수가 필요합니다:
알고리즘은 행용 루프와 행용 루프 두 개의 중첩 루프로 나뉩니다. 열의 경우. 각 루프 내에서 알고리즘은 색상의 합을 계산하고 이동 스택 접근 방식을 사용하여 업데이트합니다.
성능 개선
이 알고리즘은 픽셀에 비해 흐림 성능을 크게 향상시킵니다. 픽셀별 방법. 640x480 이미지의 경우 원래 알고리즘은 흐리게 처리하는 데 30초가 걸렸지만 이 알고리즘은 그 시간을 약 5초로 줄였습니다.
참고
코드 스니펫에는 수정 사항이 포함되어 있습니다. 특정 경우에 발생할 수 있는 ArrayIndexOutOfBoundsException 문제에 대해 설명합니다. Android 11 이상의 경우 예외를 방지하려면 Math.abs 대신 StrictMath.abs를 사용해야 합니다.
위 내용은 Android에서 빠른 비트맵 블러링을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!