> Java > java지도 시간 > Android에서 빠른 비트맵 블러링을 어떻게 달성할 수 있습니까?

Android에서 빠른 비트맵 블러링을 어떻게 달성할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-07 18:40:14
원래의
734명이 탐색했습니다.

How Can We Achieve Fast Bitmap Blurring in Android?

Android용 빠른 비트맵 흐림

Android에서 이미지에 흐림 필터를 적용하는 것은 시간이 많이 걸리는 프로세스일 수 있으며, 특히 큰 이미지의 경우 더욱 그렇습니다. . 이는 기존 방법이 이미지의 각 픽셀을 반복하므로 계산 비용이 많이 들 수 있기 때문입니다.

더 빠른 알고리즘 소개

이 기사에서는 전통적인 픽셀별 블러링 방식. Quasimondo에서 포팅된 이 알고리즘은 상자 흐림과 가우시안 흐림의 요소를 결합합니다.

이 알고리즘은 이미지를 스캔할 때 색상의 "이동 스택"을 생성하여 작동합니다. 이 스택은 오른쪽에 새로운 색상이 추가되고 가장 왼쪽의 색상이 제거되어 점진적으로 업데이트됩니다. 스택 상단의 나머지 색상은 스택에서의 위치에 따라 조정됩니다.

구현 세부 정보

제공되는 Java 코드 조각은 Android에서 알고리즘을 구현합니다. 세 가지 매개변수가 필요합니다:

  • sentBitmap: 블러링할 입력 비트맵
  • scale: 블러를 적용하기 전에 이미지 크기를 줄이기 위한 배율 인수
  • radius: 적용할 흐림 반경

알고리즘은 행용 루프와 행용 루프 두 개의 중첩 루프로 나뉩니다. 열의 경우. 각 루프 내에서 알고리즘은 색상의 합을 계산하고 이동 스택 접근 방식을 사용하여 업데이트합니다.

성능 개선

이 알고리즘은 픽셀에 비해 흐림 성능을 크게 향상시킵니다. 픽셀별 방법. 640x480 이미지의 경우 원래 알고리즘은 흐리게 처리하는 데 30초가 걸렸지만 이 알고리즘은 그 시간을 약 5초로 줄였습니다.

참고

코드 스니펫에는 수정 사항이 포함되어 있습니다. 특정 경우에 발생할 수 있는 ArrayIndexOutOfBoundsException 문제에 대해 설명합니다. Android 11 이상의 경우 예외를 방지하려면 Math.abs 대신 StrictMath.abs를 사용해야 합니다.

위 내용은 Android에서 빠른 비트맵 블러링을 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿