Como criar Bitmap a partir da imagem do buffer de bytes em escala de cinza?

Estou tentando obter a imagem do quadro para processar enquanto estiver usando a nova API de visão móvel para detecção de rosto Android.

Então, eu criei o Detector personalizado para obter o Frame e tentei chamar o método getBitmap (), mas como ele é nulo, acessei os dados em escala de cinza do frame. Existe uma maneira de criar bitmap a partir dele ou classe de suporte de imagem semelhante?

public class CustomFaceDetector extends Detector<Face> {
private Detector<Face> mDelegate;

public CustomFaceDetector(Detector<Face> delegate) {
    mDelegate = delegate;
}

public SparseArray<Face> detect(Frame frame) {
    ByteBuffer byteBuffer = frame.getGrayscaleImageData();
    byte[] bytes = byteBuffer.array();
    int w = frame.getMetadata().getWidth();
    int h = frame.getMetadata().getHeight();
    // Byte array to Bitmap here
    return mDelegate.detect(frame);
}

public boolean isOperational() {
    return mDelegate.isOperational();
}

public boolean setFocus(int id) {
    return mDelegate.setFocus(id);
}}

questionAnswers(2)

yourAnswerToTheQuestion