Tôi đang sử dụng này để xoay Bitmap
từ tồn tại một:Làm thế nào để xoay Bitmap mà không cần tạo bitmap mới?
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);
}
Có thể làm điều đó mà không cần tạo bitmap mới?
Tôi đã cố gắng để vẽ lại hình ảnh có thể thay đổi cùng với 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());
nhưng phương pháp này vừa mới dẫn đến bitmap hỏng. Vậy có khả năng nào để đạt được nó?
cố gắng để có được các bit và áp dụng một thuật toán xoay ma trận –
Câu trả lời này có thể giúp: http://stackoverflow.com/questions/10664006/nhanh nhất-to-rotate-big-size-bitmap/10664055 # 10664055 – Ronnie