1
我只想從預覽視頻回調中只取一部分屏幕數據,以縮短處理時間。該probleme是我只知道如何利用整個屏幕OnPreviewFrame:Android相機預覽 - 僅拍攝一部分屏幕數據
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
myData = data;
// +get camera resolution x, y
}
然後用這個數據得到的圖像:
private Bitmap getBitmapFromYUV(byte[] data, int width, int height)
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21, width, height, null);
yuvImage.compressToJpeg(new Rect(0, 0, width, height), 100, out);
byte[] imageBytes = out.toByteArray();
Bitmap image = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length);
return image;
}
然後我把圖像的一部分佔用了我想:
cutImage = Bitmap.createBitmap(image, xOffset, yOffset, customWidth, customHeight);
的問題是,我需要大量的圖片在其上塗抹一些圖像處理,這就是爲什麼我想減少它需要得到圖像的時間。而不是整個屏幕,然後裁剪,我想立即得到裁剪圖像。有沒有辦法獲得屏幕數據的一部分?