ImageReader.NewInstance Método

Definición

Sobrecargas

Nombre Description
NewInstance(Int32, Int32, ImageFormatType, Int32)

Cree un nuevo lector para las imágenes del tamaño y el formato deseados.

NewInstance(Int32, Int32, ImageFormatType, Int32, Int64)

Cree un nuevo lector para las imágenes del tamaño deseado, el formato y la marca de uso del consumidor.

NewInstance(Int32, Int32, ImageFormatType, Int32)

Cree un nuevo lector para las imágenes del tamaño y el formato deseados.

[Android.Runtime.Register("newInstance", "(IIII)Landroid/media/ImageReader;", "")]
public static Android.Media.ImageReader NewInstance(int width, int height, Android.Graphics.ImageFormatType format, int maxImages);
[<Android.Runtime.Register("newInstance", "(IIII)Landroid/media/ImageReader;", "")>]
static member NewInstance : int * int * Android.Graphics.ImageFormatType * int -> Android.Media.ImageReader

Parámetros

width
Int32

Ancho predeterminado en píxeles de las imágenes que generará este lector.

height
Int32

Alto predeterminado en píxeles de las imágenes que generará este lector.

format
ImageFormatType

Formato de la imagen que generará este lector. Debe ser una de las android.graphics.ImageFormat constantes o android.graphics.PixelFormat . Tenga en cuenta que no se admiten todos los formatos, como ImageFormat.NV21.

maxImages
Int32

Número máximo de imágenes a las que el usuario quiere acceder simultáneamente. Esto debe ser lo más pequeño posible para limitar el uso de memoria. Una vez que el usuario obtiene maxImages Images, uno de ellos debe publicarse antes de que una nueva imagen esté disponible para acceder a través #acquireLatestImage() de o #acquireNextImage(). Debe ser mayor que 0.

Devoluciones

Atributos

Comentarios

Cree un nuevo lector para las imágenes del tamaño y el formato deseados.

El maxImages parámetro determina el número máximo de Image objetos que se pueden adquirir simultáneamente ImageReader . Solicitar más búferes usará más memoria, por lo que es importante usar solo el número mínimo necesario para el caso de uso.

Los tamaños y formatos válidos dependen del origen de los datos de la imagen.

format Si es ImageFormat#PRIVATE PRIVATE, el objeto creado ImageReader generará imágenes que no sean accesibles directamente por la aplicación. La aplicación todavía puede adquirir imágenes de este ImageReadery enviarlos a para volver a android.hardware.camera2.CameraDevice camera procesar a través ImageWriter de la interfaz . Sin embargo, Image#getPlanes() getPlanes() devolverá una matriz vacía para las ImageFormat#PRIVATE PRIVATE imágenes de formato. La aplicación puede comprobar si el formato de un lector existente llama a #getImageFormat().

ImageFormat#PRIVATE PRIVATE el formato ImageReader ImageReaders es más eficaz cuando no es necesario el acceso de la aplicación a los datos de imagen, en comparación con ImageReaders mediante otro formato, como ImageFormat#YUV_420_888 YUV_420_888.

Java documentación para android.media.ImageReader.newInstance(int, int, int, int).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Consulte también

Se aplica a

NewInstance(Int32, Int32, ImageFormatType, Int32, Int64)

Cree un nuevo lector para las imágenes del tamaño deseado, el formato y la marca de uso del consumidor.

[Android.Runtime.Register("newInstance", "(IIIIJ)Landroid/media/ImageReader;", "", ApiSince=29)]
public static Android.Media.ImageReader NewInstance(int width, int height, Android.Graphics.ImageFormatType format, int maxImages, long usage);
[<Android.Runtime.Register("newInstance", "(IIIIJ)Landroid/media/ImageReader;", "", ApiSince=29)>]
static member NewInstance : int * int * Android.Graphics.ImageFormatType * int * int64 -> Android.Media.ImageReader

Parámetros

width
Int32

Ancho predeterminado en píxeles de las imágenes que generará este lector.

height
Int32

Alto predeterminado en píxeles de las imágenes que generará este lector.

format
ImageFormatType

Formato de la imagen que generará este lector. Debe ser una de las android.graphics.ImageFormat constantes o android.graphics.PixelFormat . Tenga en cuenta que no se admiten todos los formatos, como ImageFormat.NV21.

maxImages
Int32

Número máximo de imágenes a las que el usuario quiere acceder simultáneamente. Esto debe ser lo más pequeño posible para limitar el uso de memoria. Una vez que el usuario obtiene maxImages Images, uno de ellos debe publicarse antes de que una nueva imagen esté disponible para acceder a través #acquireLatestImage() de o #acquireNextImage(). Debe ser mayor que 0.

usage
Int64

El uso previsto de las imágenes producidas por este ImageReader. Consulte los usos de HardwareBuffer para obtener una lista de bits de uso válidos. Consulte también HardwareBuffer#isSupported(int, int, int, int, long) para comprobar si se admite una combinación. Si no se admite, se producirá una IllegalArgumentExceptionexcepción .

Devoluciones

Atributos

Comentarios

Cree un nuevo lector para las imágenes del tamaño deseado, el formato y la marca de uso del consumidor.

El maxImages parámetro determina el número máximo de Image objetos que se pueden adquirir simultáneamente ImageReader . Solicitar más búferes usará más memoria, por lo que es importante usar solo el número mínimo necesario para el caso de uso.

Los tamaños y formatos válidos dependen del origen de los datos de la imagen.

La combinación de marcas de uso y formato describe cómo usará el búfer en los puntos finales del consumidor. Por ejemplo, si la aplicación pretende enviar las imágenes a android.media.MediaCodec o android.media.MediaRecorder para la codificación de vídeo de hardware, la combinación de formato y marca de uso debe ser ImageFormat#PRIVATE PRIVATE y HardwareBuffer#USAGE_VIDEO_ENCODE. Cuando se crea un ImageReader objeto con un tamaño válido y dicha combinación de marca de formato o uso, la aplicación puede enviar a Image images un ImageWriter objeto creado con la entrada android.view.Surface proporcionada por o android.media.MediaCodecandroid.media.MediaRecorder.

format Si es ImageFormat#PRIVATE PRIVATE, el objeto creado ImageReader generará imágenes que no sean accesibles directamente por la aplicación. La aplicación todavía puede adquirir imágenes de este ImageReadery enviarlos a para volver a android.hardware.camera2.CameraDevice camera procesar o a para codificaciónandroid.media.MediaRecorderandroid.media.MediaCodec / de vídeo de hardware a través ImageWriter de la interfaz . Sin embargo, Image#getPlanes() getPlanes() devolverá una matriz vacía para las ImageFormat#PRIVATE PRIVATE imágenes de formato. La aplicación puede comprobar si el formato de un lector existente llama a #getImageFormat().

ImageFormat#PRIVATE PRIVATE el formato ImageReader ImageReaders es más eficaz cuando no es necesario el acceso de la aplicación a los datos de imagen, en comparación con ImageReaders mediante otro formato, como ImageFormat#YUV_420_888 YUV_420_888.

Tenga en cuenta que no todas las combinaciones de formato y marca de uso son compatibles con .ImageReader A continuación se muestran las combinaciones admitidas por ImageReader (suponiendo que los puntos finales del consumidor admitan el consumo de imagen, por ejemplo, codificación de vídeo de hardware). <table><tr><th Format</th>th<>>Compatible usage flags</th<>/tr tr<>td>><non-android.graphics.ImageFormat#PRIVATE PRIVATE formats definidos por android.graphics.ImageFormat ImageFormat o android.graphics.PixelFormat PixelFormat</td td>>HardwareBuffer#USAGE_CPU_READ_RARELY< o<HardwareBuffer#USAGE_CPU_READ_OFTEN /td></tr tr<<>>td/tdandroid.graphics.ImageFormat#PRIVATE<> tdHardwareBuffer#USAGE_VIDEO_ENCODE>>< o HardwareBuffer#USAGE_GPU_SAMPLED_IMAGE, or combined</td<>/tr<>/table> Using other combinations may result in .IllegalArgumentException Además, especificar HardwareBuffer#USAGE_CPU_WRITE_RARELY o HardwareBuffer#USAGE_CPU_WRITE_OFTEN escribir en los búferes de ImageReader podría interrumpir las suposiciones realizadas por algunos productores y debe usarse con precaución.

ImageReader Si se usa como destino de salida para , android.hardware.camera2.CameraDevicey si la marca de uso contiene HardwareBuffer#USAGE_VIDEO_ENCODE, las marcas de tiempo del Image images generado por ImageReader no estarán en el mismo tiempo base que android.os.SystemClock#elapsedRealtimeNanos, incluso si android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE es android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME. En su lugar, las marcas de tiempo estarán aproximadamente en el mismo tiempo base que en android.os.SystemClock#uptimeMillis, para que la sincronización de A/V pueda funcionar para la grabación de vídeo. En este caso, es posible que las marcas de tiempo de la ImageReader marca de uso con HardwareBuffer#USAGE_VIDEO_ENCODE no sean comparables directamente con las marcas de tiempo de otras secuencias o capturar metadatos de resultados.

Java documentación para android.media.ImageReader.newInstance(int, int, int, int, long).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a