旋转都是顺时针,镜像都是左右镜像;
YUV420_ROTATE_90:
private byte[] YUV420_ROTATE_90(byte[] buffer, int pixel_w, int pixel_h) {
byte[] buffer_new = new byte[buffer.length];
int k = 0;
//Y
for (int i = 0; i < pixel_w; i++) {
for (int j = pixel_h - 1; j >= 0; j--) {
buffer_new[k] = buffer[j * pixel_w + i];
k++;
}
}
//U
for (int i = 0; i < pixel_w / 2; i++) {
for (int j = pixel_h / 2 - 1; j >= 0; j--) {
buffer_new[k] = buffer[pixel_w * pixel_h + j * pixel_w / 2 + i];
k++;
}
}
//V
for (int i = 0; i < pixel_w / 2; i++) {
for (int j = pixel_h / 2 - 1; j >= 0; j--) {
buffer_new[k] = buffer[pixel_w * pixel_h * 5 / 4 + j * pixel_w / 2 + i];
k++;
}
}
return buffer_new;
}
YUV420_ROTATE_180:
private byte[] YUV420_ROTATE_180(byte[] buffer, int pixel_w, int pixel_h) {
byte[] buffer_new = new byte[buffer.length];
int k = 0;
//Y
for (int j = pixel_h - 1; j >= 0; j--) {
for (int i = pixel_w - 1; i >= 0; i--) {
buffer_new[k] = buffer[(j + 1) * pixel_w - pixel_w + i];
k++;
}
}
//U
for (int j =