ImageReader.NewInstance Método

Definição

Sobrecargas

Nome Description
NewInstance(Int32, Int32, ImageFormatType, Int32)

Crie um novo leitor para imagens do tamanho e do formato desejados.

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

Crie um novo leitor para imagens do tamanho desejado, do formato e do sinalizador de uso do consumidor.

NewInstance(Int32, Int32, ImageFormatType, Int32)

Crie um novo leitor para imagens do tamanho e do formato desejados.

[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

A largura padrão em pixels das imagens que este leitor produzirá.

height
Int32

A altura padrão em pixels das imagens que este leitor produzirá.

format
ImageFormatType

O formato da Imagem que este leitor produzirá. Essa deve ser uma das android.graphics.ImageFormat constantes.android.graphics.PixelFormat Observe que nem todos os formatos têm suporte, como ImageFormat.NV21.

maxImages
Int32

O número máximo de imagens que o usuário desejará acessar simultaneamente. Isso deve ser o menor possível para limitar o uso de memória. Depois que maxImages Images são obtidas pelo usuário, uma delas precisa ser lançada antes que uma nova imagem fique disponível para acesso por meio #acquireLatestImage() ou #acquireNextImage(). Deve ser maior que 0.

Retornos

Atributos

Comentários

Crie um novo leitor para imagens do tamanho e do formato desejados.

O maxImages parâmetro determina o número máximo de Image objetos que podem ser adquiridos simultaneamente ImageReader . Solicitar mais buffers usará mais memória, portanto, é importante usar apenas o número mínimo necessário para o caso de uso.

Os tamanhos e formatos válidos dependem da origem dos dados da imagem.

Se for formatImageFormat#PRIVATE PRIVATE, o criado ImageReader produzirá imagens que não são diretamente acessíveis pelo aplicativo. O aplicativo ainda pode adquirir imagens a partir disso ImageReadere enviá-las para o android.hardware.camera2.CameraDevice camera reprocessamento por meio da ImageWriter interface. No entanto, ele Image#getPlanes() getPlanes() retornará uma matriz vazia para ImageFormat#PRIVATE PRIVATE formatar imagens. O aplicativo pode verificar se o formato de um leitor existente está chamando #getImageFormat().

ImageFormat#PRIVATE PRIVATE o formato ImageReader ImageReaders é mais eficiente de usar quando o acesso do aplicativo a dados de imagem não é necessário, em comparação com ImageReaders usando outro formato, como ImageFormat#YUV_420_888 YUV_420_888.

Java documentação para android.media.ImageReader.newInstance(int, int, int, int).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Confira também

Aplica-se a

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

Crie um novo leitor para imagens do tamanho desejado, do formato e do sinalizador de uso do 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

A largura padrão em pixels das imagens que este leitor produzirá.

height
Int32

A altura padrão em pixels das imagens que este leitor produzirá.

format
ImageFormatType

O formato da Imagem que este leitor produzirá. Essa deve ser uma das android.graphics.ImageFormat constantes.android.graphics.PixelFormat Observe que nem todos os formatos têm suporte, como ImageFormat.NV21.

maxImages
Int32

O número máximo de imagens que o usuário desejará acessar simultaneamente. Isso deve ser o menor possível para limitar o uso de memória. Depois que maxImages Images são obtidas pelo usuário, uma delas precisa ser lançada antes que uma nova imagem fique disponível para acesso por meio #acquireLatestImage() ou #acquireNextImage(). Deve ser maior que 0.

usage
Int64

O uso pretendido das imagens produzidas por este ImageReader. Consulte os usos em HardwareBuffer uma lista de bits de uso válidos. Consulte também HardwareBuffer#isSupported(int, int, int, int, long) para verificar se há suporte para uma combinação. Se não houver suporte, isso gerará um IllegalArgumentException.

Retornos

Atributos

Comentários

Crie um novo leitor para imagens do tamanho desejado, do formato e do sinalizador de uso do consumidor.

O maxImages parâmetro determina o número máximo de Image objetos que podem ser adquiridos simultaneamente ImageReader . Solicitar mais buffers usará mais memória, portanto, é importante usar apenas o número mínimo necessário para o caso de uso.

Os tamanhos e formatos válidos dependem da origem dos dados da imagem.

A combinação de formato e sinalizador de uso descreve como o buffer será usado pelos pontos de extremidade do consumidor. Por exemplo, se o aplicativo pretende enviar as imagens para android.media.MediaCodec ou android.media.MediaRecorder para codificação de vídeo de hardware, a combinação de formato e sinalizador de uso precisa ser ImageFormat#PRIVATE PRIVATE e HardwareBuffer#USAGE_VIDEO_ENCODE. Quando um ImageReader objeto é criado com um tamanho válido e essa combinação de sinalizador de formato/uso, o aplicativo pode enviar o Image images para um ImageWriter que é criado com a entrada android.view.Surface fornecida pelo android.media.MediaCodec ou android.media.MediaRecorder.

Se for formatImageFormat#PRIVATE PRIVATE, o criado ImageReader produzirá imagens que não são diretamente acessíveis pelo aplicativo. O aplicativo ainda pode adquirir imagens a partir disso ImageReadere enviá-las para o android.hardware.camera2.CameraDevice camera reprocessamento ou para aandroid.media.MediaRecorderandroid.media.MediaCodec / codificação de vídeo de hardware por meio da ImageWriter interface. No entanto, ele Image#getPlanes() getPlanes() retornará uma matriz vazia para ImageFormat#PRIVATE PRIVATE formatar imagens. O aplicativo pode verificar se o formato de um leitor existente está chamando #getImageFormat().

ImageFormat#PRIVATE PRIVATE o formato ImageReader ImageReaders é mais eficiente de usar quando o acesso do aplicativo a dados de imagem não é necessário, em comparação com ImageReaders usando outro formato, como ImageFormat#YUV_420_888 YUV_420_888.

Observe que nem todas as combinações de sinalizador de uso e formato têm suporte pelo ImageReader. Abaixo estão as combinações com suporte ( ImageReader supondo que os pontos de extremidade do consumidor dão suporte a esse consumo de imagem, por exemplo, codificação de vídeo de hardware). <table><tr><th>Format</th th<>>Compatible usage flags</th<>/tr<>tr<>td>non-formatsandroid.graphics.ImageFormat#PRIVATE PRIVATE defined by android.graphics.ImageFormat ImageFormat or<android.graphics.PixelFormat PixelFormat /td><tdHardwareBuffer#USAGE_CPU_READ_RARELY> or<HardwareBuffer#USAGE_CPU_READ_OFTEN /td<>/tr<<>>tdandroid.graphics.ImageFormat#PRIVATE></td tdHardwareBuffer#USAGE_VIDEO_ENCODE>>< or HardwareBuffer#USAGE_GPU_SAMPLED_IMAGE, or combined</td<>/tr<>/table> Using other combinations may result in .IllegalArgumentException Além disso, especificar HardwareBuffer#USAGE_CPU_WRITE_RARELY ou HardwareBuffer#USAGE_CPU_WRITE_OFTEN gravar nos buffers do ImageReader pode quebrar suposições feitas por alguns produtores e deve ser usado com cuidado.

Se for ImageReader usado como um destino de saída para um android.hardware.camera2.CameraDevice, e se o sinalizador de uso contiver HardwareBuffer#USAGE_VIDEO_ENCODE, os carimbos de data/hora do Image images produzido pelo ImageReader não estarão na mesma base de tempo que android.os.SystemClock#elapsedRealtimeNanos, mesmo se android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE for android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME. Em vez disso, os carimbos de data/hora estarão aproximadamente na mesma base de tempo que em android.os.SystemClock#uptimeMillis, para que a sincronização de A/V possa funcionar para gravação de vídeo. Nesse caso, os carimbos de data/hora do ImageReader sinalizador com HardwareBuffer#USAGE_VIDEO_ENCODE uso podem não ser diretamente comparáveis com carimbos de data/hora de outros fluxos ou metadados de resultado de captura.

Java documentação para android.media.ImageReader.newInstance(int, int, int, int, long).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a