public void initFromCameraParameters(Camera camera, Point maxPoint) {
Camera.Parameters parameters = camera.getParameters();
Point size = new Point(maxPoint.y, maxPoint.x);
cameraResolution = CameraConfigurationUtils.findBestPreviewSizeva lue(parameters, size);
Log.i(TAG, "Camera resolution: " + cameraResolution);
Log.i(TAG, "size resolution: " + size);
}
public void findBestSurfacePoint(Point maxPoint) {
Point cameraResolution = configManager.getCameraResolution();
if (cameraResolution == null || maxPoint == null || maxPoint.x == 0 || maxPoint.y == 0)
return;
double scaleX, scaleY, scale;
if (maxPoint.x < maxPoint.y) {
scaleX = cameraResolution.x * 1.0f / maxPoint.y;
scaleY = cameraResolution.y * 1.0f / maxPoint.x;
} else {
scaleX = cameraResolution.x * 1.0f / maxPoint.x;
scaleY = cameraResolution.y * 1.0f / maxPoint.y;
}
scale = scaleX > scaleY ? scaleX : scaleY;
if (maxPoint.x < maxPoint.y) {
surfacePoint.x = (int) (cameraResolution.y / scale);
surfacePoint.y = (int) (cameraResolution.x / scale);
} else {
surfacePoint.x = (int) (cameraResolution.x / scale);
surfacePoint.y = (int) (cameraResolution.y / scale);
}
}