Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo rotar Bitmap sin crear uno nuevo?

Estoy usando esto para obtener un Bitmap de Bitmap girado de una existente:

 private Bitmap getRotatedBitmap(Bitmap bitmap, int angle) { int w = bitmap.getWidth(); int h = bitmap.getHeight(); Matrix mtx = new Matrix(); mtx.postRotate(angle); return Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, true); } 

¿Es posible hacerlo sin crear un nuevo mapa de bits?

Yo estaba tratando de redibujar la misma imagen mutable con Canvas :

 Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight, config); Canvas canvas = new Canvas(targetBitmap); Matrix matrix = new Matrix(); matrix.setRotate(mRotation,source.getWidth()/2,source.getHeight()/2); canvas.drawBitmap(targetBitmap, matrix, new Paint()); 

Pero este enfoque acaba de resultar en mapa de bits dañado. Entonces, ¿hay alguna posibilidad de lograrlo?

One Solution collect form web for “Cómo rotar Bitmap sin crear uno nuevo?”

Esta es la rotación más simple en el código de lienzo, sin crear un nuevo mapa de bits

 canvas.save(); //save the position of the canvas canvas.rotate(angle, X + (imageW / 2), Y + (imageH / 2)); //rotate the canvas canvas.drawBitmap(imageBmp, X, Y, null); //draw the image on the rotated canvas canvas.restore(); // restore the canvas position. 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.