zhangzengfei
2022-01-10 4496b59ab27d569df1da7ef634e02273b3a9618a
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
32
33
34
35
36
37
38
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;
    }
 
 
}