public class

JpegImage2Result

extends java.lang.Object

implements Operation<Packet, ImageProxy>

 java.lang.Object

↳androidx.camera.core.imagecapture.JpegImage2Result

Gradle dependencies

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

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

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

Overview

Produces a ImageProxy as in-memory capture result.

Updates the input ImageProxy's metadata based on the info in the Packet. The metadata in the Packet should be correct at this stage. The quirks should be handled in the androidx.camera.core.imagecapture.ProcessingInput2Packet processor, and the transformation info should be updated by upstream processors.

Summary

Constructors
publicJpegImage2Result()

Methods
public ImageProxyapply(Packet<ImageProxy> input)

from java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

public JpegImage2Result()

Methods

public ImageProxy apply(Packet<ImageProxy> input)

Source

/*
 * Copyright 2022 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.core.imagecapture;

import androidx.annotation.NonNull;
import androidx.camera.core.ImageCaptureException;
import androidx.camera.core.ImageInfo;
import androidx.camera.core.ImageProxy;
import androidx.camera.core.ImmutableImageInfo;
import androidx.camera.core.SettableImageProxy;
import androidx.camera.core.processing.Operation;
import androidx.camera.core.processing.Packet;

/**
 * Produces a {@link ImageProxy} as in-memory capture result.
 *
 * <p>Updates the input {@link ImageProxy}'s metadata based on the info in the {@link Packet}.
 * The metadata in the {@link Packet} should be correct at this stage. The quirks should be handled
 * in the {@link ProcessingInput2Packet} processor, and the transformation info should be updated
 * by upstream processors.
 */
public class JpegImage2Result implements Operation<Packet<ImageProxy>, ImageProxy> {

    @NonNull
    @Override
    public ImageProxy apply(@NonNull Packet<ImageProxy> input)
            throws ImageCaptureException {
        ImageProxy image = input.getData();

        ImageInfo imageInfo = ImmutableImageInfo.create(
                image.getImageInfo().getTagBundle(),
                image.getImageInfo().getTimestamp(),
                input.getRotationDegrees(),
                input.getSensorToBufferTransform());

        final ImageProxy imageWithUpdatedInfo = new SettableImageProxy(image,
                input.getSize(), imageInfo);
        imageWithUpdatedInfo.setCropRect(input.getCropRect());
        return imageWithUpdatedInfo;
    }
}