Вы пробовали:
Matrix mat = new Matrix();
mat.postRotate(45);
Bitmap newBm = Bitmap.createBitmap(bitmapPlayer, 0, 0, bitmapPlayer.width(), bitmapPlayer.height(), mat, true);
и затем доступ к пикселям нового растрового изображения?
Я думаю, что сейчас вы просто рисуете повернутое растровое изображение на холсте, вы не вращаете растровое изображение
EDIT:
То, как вы делаете это в своем оригинальном сообщении, не сработает, потому что вы начинаете с (0,0) и движетесь вниз по левому столбцу ... В зависимости от степени поворота вам придется начинать с другого поместите и перейдите в другой столбец. то есть небольшое вращение по часовой стрелке, и вы начинаете с верхнего правого указателя.
Bitmap bm = someImage;
int startx, starty;
int degree = rotateDegree % 360; // counterclockwise
if (degree >= 0 && degree < 90) {
startx = bm.getWidth();
starty = 0;
} else if (degree >= 90 && degree < 180) {
startx = bm.getWidth();
starty = bm.getWidth();
} else if (degree >= 180 && degree < 270) {
startx = 0();
starty = bm.getWidth();
} else {
startx = 0;
starty = 0;
}
А затем попробуйте пройти изображение таким образом, начиная с (startx, starty)
и добавление или вычитание правильного угла (вы можете использовать некоторые логические, чтобы отслеживать
ли вы добавляете или вычитаете из x или y соответственно). Дайте мне знать, если это работает,
а если нет, то можете ли вы немного более точно определить, где, по вашему мнению, может быть проблема?