Thanks for the great feedback, Andy. We are constantly trying to improve our SDKs and will definitely add more flexibility to the APIs in future releases.
However, there are alternatives to unblock you in your project using the current release.
- For your first query,
Currently we set the quadview with a single bitmap (2x2 image) as in
quadView.setQuadBitmap(quadBitmap);
I would like to pass an array of Bitmap for each image (LL, LM, RM, RR)
You can use the different bitmaps representing camera views, by building the MultiviewImage instance yourself. The MultiviewImage object consists of a collection of ViewPoints where each ViewPoint represents the image and disparity map from a single camera view point. When working with 2x2 images, disparity maps are not needed.
You can simply construct the MultiviewImage as shown below.
MultiviewImage multiviewImage = new MultiviewImage();
multiviewImage.getViewPoints().add(new ViewPoint(bitmap00, null, 0.0f, 0f));
multiviewImage.getViewPoints().add(new ViewPoint(bitmap01, null, 1.0f, 0f));
multiviewImage.getViewPoints().add(new ViewPoint(bitmap10, null, 2.0f, 0f));
multiviewImage.getViewPoints().add(new ViewPoint(bitmap11, null, 3.0f, 0f));
Finally, you can use the MultiviewSynthesizer to generate a 2x2 for you, using the MultiviewImage instance created in the last step.
MultiviewSynthesizer2 synthesizer2 = MultiviewSynthesizer2.createMultiviewSynthesizer(this);
Bitmap quadBitmap = synthesizer2.toQuadBitmap(multiviewImage);
- For your second query,
The same applies to
Bitmap quadBitmap = synthesizer2.toQuadBitmap(multiviewImage);
Here there should be an API method option to return an array of Bitmap.
You can use the ViewPoints in the decoded MultiviewImage to obtain the bitmaps for the different camera views. Please note that only the MultiviewImage obtained from a 2x2 will have 4 viewpoints. You can get the bitmaps as shown below.
Bitmap bitmap00 = multiviewImage.getViewPoints().get(0).getAlbedo();
Bitmap bitmap01 = multiviewImage.getViewPoints().get(1).getAlbedo();
Bitmap bitmap10 = multiviewImage.getViewPoints().get(2).getAlbedo();
Bitmap bitmap11 = multiviewImage.getViewPoints().get(3).getAlbedo();
Hope this helps you in your app. Feel free to reach out if you have any questions.