mirror of
https://github.com/danog/termux-api.git
synced 2024-11-27 04:14:47 +01:00
Minor formatting changes only
This commit is contained in:
parent
749e68b6f2
commit
20252cf9a7
@ -57,15 +57,23 @@ public class PhotoAPI {
|
|||||||
out.println("No such camera: " + cameraId);
|
out.println("No such camera: " + cameraId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
|
StreamConfigurationMap map = characteristics.get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP);
|
||||||
|
|
||||||
// For still image captures, we use the largest available size.
|
// Use largest available size:
|
||||||
Size largest = Collections.max(Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)),
|
Size largest = Collections.max(Arrays.asList(map.getOutputSizes(ImageFormat.JPEG)), new Comparator<Size>() {
|
||||||
new CompareSizesByArea());
|
@Override
|
||||||
final ImageReader mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(),
|
public int compare(Size lhs, Size rhs) {
|
||||||
ImageFormat.JPEG, 2);
|
// Cast to ensure multiplications won't overflow:
|
||||||
|
return Long.signum((long) lhs.getWidth() * lhs.getHeight() - (long) rhs.getWidth() * rhs.getHeight());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
final ImageReader mImageReader = ImageReader.newInstance(largest.getWidth(), largest.getHeight(), ImageFormat.JPEG, 2);
|
||||||
|
|
||||||
Looper.prepare();
|
Looper.prepare();
|
||||||
final Looper looper = Looper.myLooper();
|
final Looper looper = Looper.myLooper();
|
||||||
|
|
||||||
mImageReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
|
mImageReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onImageAvailable(final ImageReader reader) {
|
public void onImageAvailable(final ImageReader reader) {
|
||||||
@ -94,15 +102,12 @@ public class PhotoAPI {
|
|||||||
@Override
|
@Override
|
||||||
public void onOpened(final CameraDevice camera) {
|
public void onOpened(final CameraDevice camera) {
|
||||||
try {
|
try {
|
||||||
final CaptureRequest.Builder captureBuilder = camera
|
final CaptureRequest.Builder captureBuilder = camera.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
|
||||||
.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
|
|
||||||
captureBuilder.addTarget(mImageReader.getSurface());
|
captureBuilder.addTarget(mImageReader.getSurface());
|
||||||
|
|
||||||
// Use the same AE and AF modes as the preview.
|
// Configure auto-focus (AF) and auto-exposure (AE) modes:
|
||||||
captureBuilder.set(CaptureRequest.CONTROL_AF_MODE,
|
captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
|
||||||
CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
|
captureBuilder.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CONTROL_AE_MODE_ON_AUTO_FLASH);
|
||||||
captureBuilder
|
|
||||||
.set(CaptureRequest.CONTROL_AE_MODE, CameraMetadata.CONTROL_AE_MODE_ON_AUTO_FLASH);
|
|
||||||
|
|
||||||
// Orientation jpeg fix, from the Camera2BasicFragment example:
|
// Orientation jpeg fix, from the Camera2BasicFragment example:
|
||||||
int cameraJpegOrientation;
|
int cameraJpegOrientation;
|
||||||
@ -125,8 +130,7 @@ public class PhotoAPI {
|
|||||||
}
|
}
|
||||||
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, cameraJpegOrientation);
|
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, cameraJpegOrientation);
|
||||||
|
|
||||||
List<Surface> outputSurfaces = Collections.singletonList(mImageReader.getSurface());
|
camera.createCaptureSession(Collections.singletonList(mImageReader.getSurface()), new CameraCaptureSession.StateCallback() {
|
||||||
camera.createCaptureSession(outputSurfaces, new CameraCaptureSession.StateCallback() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onConfigured(CameraCaptureSession session) {
|
public void onConfigured(CameraCaptureSession session) {
|
||||||
try {
|
try {
|
||||||
@ -170,18 +174,11 @@ public class PhotoAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}, null);
|
}, null);
|
||||||
|
|
||||||
Looper.loop();
|
Looper.loop();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
TermuxApiLogger.error("Error getting camera", e);
|
TermuxApiLogger.error("Error getting camera", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static class CompareSizesByArea implements Comparator<Size> {
|
|
||||||
@Override
|
|
||||||
public int compare(Size lhs, Size rhs) {
|
|
||||||
// We cast here to ensure the multiplications won't overflow
|
|
||||||
return Long.signum((long) lhs.getWidth() * lhs.getHeight() - (long) rhs.getWidth() * rhs.getHeight());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user