a
554325746@qq.com
2019-12-24 570a73851c26d810c2597596a8acc8a8d4cde211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;
    }
}