public interface

CameraExtensionsControl

 androidx.camera.extensions.CameraExtensionsControl

Subclasses:

AdvancedSessionProcessor, BasicExtenderSessionProcessor

Gradle dependencies

compile group: 'androidx.camera', name: 'camera-extensions', version: '1.5.0-alpha01'

  • groupId: androidx.camera
  • artifactId: camera-extensions
  • version: 1.5.0-alpha01

Artifact androidx.camera:camera-extensions:1.5.0-alpha01 it located at Google repository (https://maven.google.com/)

Overview

A camera extensions control instance that allows customization of capture request settings for supported camera extensions.

Applications can leverage the ExtensionsManager.getCameraExtensionsControl(CameraControl) method to acquire a CameraExtensionsControl object to manage extension-related settings.

Summary

Methods
public voidsetExtensionStrength(int strength)

Sets the extension strength for the extension mode associated with the CameraExtensionsControl.

Methods

public void setExtensionStrength(int strength)

Sets the extension strength for the extension mode associated with the CameraExtensionsControl.

Strength equal to 0 means that the extension must not apply any post-processing and return a regular captured frame. Strength equal to 100 is the default level of post-processing applied when the control is not supported or not set by the client. Values between 0 and 100 will have different effect depending on the extension type as described below:

This will be supported if the CameraExtensionsInfo.isExtensionStrengthAvailable() associated to the same extensions enabled camera returns true. Invoking this method will be no-op if extension strength is not supported.

Parameters:

strength: the new extension strength value

Source

/*
 * Copyright 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package androidx.camera.extensions;

import androidx.annotation.IntRange;
import androidx.camera.core.CameraControl;

/**
 * A camera extensions control instance that allows customization of capture request settings for
 * supported camera extensions.
 *
 * <p>Applications can leverage the
 * {@link ExtensionsManager#getCameraExtensionsControl(CameraControl)} method to acquire a
 * CameraExtensionsControl object to manage extension-related settings.
 */
public interface CameraExtensionsControl {
    /**
     * Sets the extension strength for the extension mode associated with the
     * CameraExtensionsControl.
     *
     * <p>Strength equal to 0 means that the extension must not apply any post-processing and
     * return a regular captured frame. Strength equal to 100 is the default level of
     * post-processing applied when the control is not supported or not set by the client. Values
     * between 0 and 100 will have different effect depending on the extension type as described
     * below:
     * <ul>
     *     <li>{@link ExtensionMode#BOKEH} - the strength will control the amount of blur.
     *     <li>{@link ExtensionMode#HDR} and {@link ExtensionMode#NIGHT} - the strength will
     *     control the amount of images fused and the brightness of the final image.
     *     <li>{@link ExtensionMode#FACE_RETOUCH} - the strength value will control the amount of
     *     cosmetic enhancement and skin smoothing.
     * </ul>
     *
     * <p>This will be supported if the
     * {@link CameraExtensionsInfo#isExtensionStrengthAvailable()} associated to the same
     * extensions enabled camera returns {@code true}. Invoking this method will be no-op if
     * extension strength is not supported.
     *
     * @param strength the new extension strength value
     */
    default void setExtensionStrength(@IntRange(from = 0, to = 100) int strength){
    }
}