package com.basic.security.utils;
|
|
import android.graphics.Bitmap;
|
|
import java.nio.ByteBuffer;
|
|
public class BgrUtils {
|
|
ByteBuffer buffer;
|
byte[] pixels;
|
|
public byte[] getPixelsBGR(Bitmap image) {
|
// calculate how many bytes our image consists of
|
int bytes = image.getByteCount();
|
|
if (buffer == null || buffer.array().length != bytes) {
|
buffer = ByteBuffer.allocate(bytes); // Create a new buffer
|
}
|
buffer.clear();
|
image.copyPixelsToBuffer(buffer); // Move the byte data to the buffer
|
|
byte[] temp = buffer.array(); // Get the underlying array containing the data.
|
|
if (pixels == null || pixels.length != (temp.length / 4) * 3) {
|
pixels = new byte[(temp.length / 4) * 3]; // Allocate for BGR
|
}
|
|
// Copy pixels into place
|
for (int i = 0; i < temp.length / 4; i++) {
|
pixels[i * 3] = temp[i * 4 + 2]; //B
|
pixels[i * 3 + 1] = temp[i * 4 + 1]; //G
|
pixels[i * 3 + 2] = temp[i * 4]; //R
|
}
|
return pixels;
|
}
|
|
|
}
|