Flou bitmap rapide pour le SDK Android
La méthode actuelle consistant à parcourir les pixels pour flouter les images dans les applications Android peut prendre beaucoup de temps, en particulier pour des images plus grandes. Pour remédier à cette inefficacité, cet article présente un algorithme plus rapide fourni par Quasimondo, qui utilise une combinaison de flou de boîte et de flou gaussien.
Algorithme de flou de pile
Le flou de pile L'algorithme consiste à créer une pile de couleurs en mouvement tout en parcourant l'image. Il ajoute continuellement de nouveaux blocs de couleur à la pile sur le côté droit et supprime ceux les plus à gauche. Les couleurs restantes dans la pile sont ajustées en fonction de leur position dans la pile. Ce processus aboutit à un effet de flou visuellement agréable qui est nettement plus rapide qu'une implémentation de flou gaussien pur.
Détails d'implémentation
Le code fourni utilise une pile de tableaux pour stocker valeurs de couleur et calcule la couleur moyenne pour chaque pixel en fonction du contenu de la pile. L'algorithme parcourt l'image d'entrée deux fois, une fois horizontalement et une fois verticalement, distribuant les informations de couleur sur la pile pour obtenir l'effet de flou.
Problème connu et solution
Certains les utilisateurs ont rencontré une ArrayIndexOutOfBoundsException lors de l'utilisation de cet algorithme. Comme suggéré par @anthonycr dans les commentaires, le remplacement de Math.abs par StrictMath.abs ou une implémentation alternative d'abs a résolu ce problème pour beaucoup.
Avantages
Le L'algorithme de flou de pile offre les avantages suivants :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!