Skip to content

Commit

Permalink
New Android method to calculate picture size
Browse files Browse the repository at this point in the history
Finds biggest option among some hardcoded limits
  • Loading branch information
maraujop committed Jun 30, 2017
1 parent 4f2b05d commit d861e7d
Showing 1 changed file with 27 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,32 @@ private static Camera.Size getOptimalPreviewSize(List<Camera.Size> sizes, int w,
return optimalSize;
}

private static Camera.Size getBiggestPictureSize(List<Camera.Size> sizes) {
int maxWidth = 2200;
int maxHeight = 3200;
Camera.Size bestSize = null;

for (Camera.Size size : sizes) {
if (size.width > maxWidth || size.height > maxHeight) {
continue;
}

if (bestSize == null) {
bestSize = size;
continue;
}

int resultArea = bestSize.width * bestSize.height;
int newArea = size.width * size.height;

if (newArea > resultArea) {
bestSize = size;
}
}

return bestSize;
}

private static void updateCameraSize() {
try {
Camera camera = CameraViewManager.getCamera();
Expand All @@ -220,7 +246,7 @@ private static void updateCameraSize() {
List<Camera.Size> supportedPreviewSizes = camera.getParameters().getSupportedPreviewSizes();
List<Camera.Size> supportedPictureSizes = camera.getParameters().getSupportedPictureSizes();
Camera.Size optimalSize = getOptimalPreviewSize(supportedPreviewSizes, size.x, size.y);
Camera.Size optimalPictureSize = getOptimalPreviewSize(supportedPictureSizes, size.x, size.y);
Camera.Size optimalPictureSize = getBiggestPictureSize(supportedPictureSizes);
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(optimalSize.width, optimalSize.height);
parameters.setPictureSize(optimalPictureSize.width, optimalPictureSize.height);
Expand Down

0 comments on commit d861e7d

Please sign in to comment.