ICamera.java 文件源码

java
阅读 28 收藏 0 点赞 0 评论 0

项目:MegviiFacepp-Android-SDK 作者:
public Bitmap getBitMap(byte[] data, Camera camera, boolean mIsFrontalCamera) {
    int width = camera.getParameters().getPreviewSize().width;
    int height = camera.getParameters().getPreviewSize().height;
    YuvImage yuvImage = new YuvImage(data, camera.getParameters()
            .getPreviewFormat(), width, height, null);
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    yuvImage.compressToJpeg(new Rect(0, 0, width, height), 80,
            byteArrayOutputStream);
    byte[] jpegData = byteArrayOutputStream.toByteArray();
    // 获取照相后的bitmap
    Bitmap tmpBitmap = BitmapFactory.decodeByteArray(jpegData, 0,
            jpegData.length);
    Matrix matrix = new Matrix();
    matrix.reset();
    if (mIsFrontalCamera) {
        matrix.setRotate(-90);
    } else {
        matrix.setRotate(90);
    }
    tmpBitmap = Bitmap.createBitmap(tmpBitmap, 0, 0, tmpBitmap.getWidth(),
            tmpBitmap.getHeight(), matrix, true);
    tmpBitmap = tmpBitmap.copy(Bitmap.Config.ARGB_8888, true);

    int hight = tmpBitmap.getHeight() > tmpBitmap.getWidth() ? tmpBitmap
            .getHeight() : tmpBitmap.getWidth();

    float scale = hight / 800.0f;

    if (scale > 1) {
        tmpBitmap = Bitmap.createScaledBitmap(tmpBitmap,
                (int) (tmpBitmap.getWidth() / scale),
                (int) (tmpBitmap.getHeight() / scale), false);
    }
    return tmpBitmap;
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号