Flip une image Bitmap à l'horizontale ou à la verticale
En utilisant ce code on peut faire pivoter une image:
public static Bitmap RotateBitmap(Bitmap source, float angle) {
Matrix matrix = new Matrix();
matrix.postRotate(angle);
return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);
}
Mais comment pouvons-nous l'image horizontalement ou verticalement?
Vous devez vous connecter pour publier un commentaire.
Donné
cx,cy
est le centre de l'image:Flip en x:
Flip en y:
source.getWidth()/2f
source.getHeight()/2f
Courte extension pour Kotlin
Et utilisation:
Horizontal flip :-
Pour la rotation verticale :-
cx
etcy
de calcul à l'intérieur de laflip
méthode.Matrix().apply { postScale(x, y, width / 2f, height / 2f) }
Également votreflip
méthode n'est pas différent d'unscale
méthode d'extension.Pour kotlin,
Son tout sur la matrice que vous utilisez. Pour retourner autour des axes x, utilisez [[-1,0],[0, 1]]. Pour les axes y, utilisation [[1,0],[0,-1]]. La chose importante ici est que la valeur absolue du déterminant est 1, donc il ne sera pas à l'échelle. Et le - en gros l'inverse de l'emplacement autour de la donnée axes.
translate(-cx/2,-cy/2), scale, translate(cx/2,cy/2)
.