ImageReader.NewInstance Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Overload
| Nome | Descrizione |
|---|---|
| NewInstance(Int32, Int32, ImageFormatType, Int32) |
Creare un nuovo lettore per le immagini con le dimensioni e il formato desiderati. |
| NewInstance(Int32, Int32, ImageFormatType, Int32, Int64) |
Creare un nuovo lettore per le immagini delle dimensioni, del formato e del flag di utilizzo del consumer desiderato. |
NewInstance(Int32, Int32, ImageFormatType, Int32)
Creare un nuovo lettore per le immagini con le dimensioni e il formato desiderati.
[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
Parametri
- width
- Int32
Larghezza predefinita in pixel delle immagini prodotte dal lettore.
- height
- Int32
Altezza predefinita in pixel delle immagini che verrà prodotto da questo lettore.
- format
- ImageFormatType
Formato dell'immagine che verrà prodotto da questo lettore. Deve essere una delle android.graphics.ImageFormat costanti o android.graphics.PixelFormat . Si noti che non tutti i formati sono supportati, ad esempio ImageFormat.NV21.
- maxImages
- Int32
Numero massimo di immagini a cui l'utente vuole accedere contemporaneamente. Deve essere il più piccolo possibile per limitare l'uso della memoria. Dopo aver ottenuto maxImages Images dall'utente, uno di essi deve essere rilasciato prima che una nuova immagine diventi disponibile per l'accesso tramite #acquireLatestImage() o #acquireNextImage().
Deve essere maggiore di 0.
Valori restituiti
- Attributi
Commenti
Creare un nuovo lettore per le immagini con le dimensioni e il formato desiderati.
Il maxImages parametro determina il numero massimo di Image oggetti che possono essere acquisiti contemporaneamente.ImageReader La richiesta di più buffer utilizzerà più memoria, quindi è importante usare solo il numero minimo necessario per il caso d'uso.
Le dimensioni e i formati validi dipendono dall'origine dei dati dell'immagine.
format Se è ImageFormat#PRIVATE PRIVATE, il creato ImageReader produrrà immagini non direttamente accessibili dall'applicazione. L'applicazione può comunque acquisire immagini da questo ImageReaderoggetto e inviarle a android.hardware.camera2.CameraDevice camera per la rielaborazione tramite ImageWriter interfaccia. Tuttavia, Image#getPlanes() getPlanes() restituirà una matrice vuota per ImageFormat#PRIVATE PRIVATE le immagini di formato. L'applicazione può verificare se il formato di un lettore esistente può essere chiamato #getImageFormat().
ImageFormat#PRIVATE PRIVATE il formato ImageReader ImageReaders è più efficiente da usare quando l'accesso alle applicazioni ai dati di immagine non è necessario, rispetto a ImageReaders usando altri formati, ImageFormat#YUV_420_888 YUV_420_888ad esempio .
per android.media.ImageReader.newInstance(int, int, int, int).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.
Vedi anche
Si applica a
NewInstance(Int32, Int32, ImageFormatType, Int32, Int64)
Creare un nuovo lettore per le immagini delle dimensioni, del formato e del flag di utilizzo del consumer desiderato.
[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
Parametri
- width
- Int32
Larghezza predefinita in pixel delle immagini prodotte dal lettore.
- height
- Int32
Altezza predefinita in pixel delle immagini che verrà prodotto da questo lettore.
- format
- ImageFormatType
Formato dell'immagine che verrà prodotto da questo lettore. Deve essere una delle android.graphics.ImageFormat costanti o android.graphics.PixelFormat . Si noti che non tutti i formati sono supportati, ad esempio ImageFormat.NV21.
- maxImages
- Int32
Numero massimo di immagini a cui l'utente vuole accedere contemporaneamente.
Deve essere il più piccolo possibile per limitare l'uso della memoria. Dopo aver ottenuto maxImages Images dall'utente, uno di essi deve essere rilasciato prima che una nuova immagine diventi disponibile per l'accesso tramite #acquireLatestImage() o #acquireNextImage(). Deve essere maggiore di 0.
- usage
- Int64
Utilizzo previsto delle immagini prodotte da ImageReader. Per un elenco di bit di utilizzo validi, vedere gli utilizzi in .HardwareBuffer Vedere anche HardwareBuffer#isSupported(int, int, int, int, long) per verificare se è supportata una combinazione. Se non è supportato, verrà generata un'eccezione IllegalArgumentException.
Valori restituiti
- Attributi
Commenti
Creare un nuovo lettore per le immagini delle dimensioni, del formato e del flag di utilizzo del consumer desiderato.
Il maxImages parametro determina il numero massimo di Image oggetti che possono essere acquisiti contemporaneamente.ImageReader La richiesta di più buffer utilizzerà più memoria, quindi è importante usare solo il numero minimo necessario per il caso d'uso.
Le dimensioni e i formati validi dipendono dall'origine dei dati dell'immagine.
La combinazione di flag di formato e utilizzo descrive il modo in cui il buffer verrà usato dagli endpoint consumer. Ad esempio, se l'applicazione intende inviare le immagini a android.media.MediaCodec o android.media.MediaRecorder per la codifica video hardware, la combinazione di flag di formato e utilizzo deve essere ImageFormat#PRIVATE PRIVATE e HardwareBuffer#USAGE_VIDEO_ENCODE. Quando un ImageReader oggetto viene creato con una dimensione valida e tale combinazione di flag di formato/utilizzo, l'applicazione può inviare Image images a un ImageWriter oggetto creato con l'input android.view.Surface fornito da android.media.MediaCodec o android.media.MediaRecorder.
format Se è ImageFormat#PRIVATE PRIVATE, il creato ImageReader produrrà immagini non direttamente accessibili dall'applicazione. L'applicazione può comunque acquisire immagini da questo ImageReaderoggetto e inviarle a android.hardware.camera2.CameraDevice camera per la rielaborazione o a per laandroid.media.MediaRecorderandroid.media.MediaCodec / codifica video hardware tramite ImageWriter interfaccia. Tuttavia, Image#getPlanes() getPlanes() restituirà una matrice vuota per ImageFormat#PRIVATE PRIVATE le immagini di formato. L'applicazione può verificare se il formato di un lettore esistente può essere chiamato #getImageFormat().
ImageFormat#PRIVATE PRIVATE il formato ImageReader ImageReaders è più efficiente da usare quando l'accesso alle applicazioni ai dati di immagine non è necessario, rispetto a ImageReaders usando altri formati, ImageFormat#YUV_420_888 YUV_420_888ad esempio .
Si noti che non tutte le combinazioni di flag di formato e utilizzo sono supportate da ImageReader. Di seguito sono riportate le combinazioni supportate da ImageReader (presupponendo che gli endpoint consumer supportino l'utilizzo di tali immagini, ad esempio la codifica video hardware).
<table><tr><th>Format</th th>><Flag di utilizzo compatibile/<th<>/tr tr<<>>td>non-android.graphics.ImageFormat#PRIVATE PRIVATE formati definiti da 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/td td>android.graphics.ImageFormat#PRIVATE<HardwareBuffer#USAGE_VIDEO_ENCODE>>< o HardwareBuffer#USAGE_GPU_SAMPLED_IMAGE, oppure combinata</td<>/tr<>/table> Usando altre combinazioni può comportare .IllegalArgumentException Inoltre, specificare HardwareBuffer#USAGE_CPU_WRITE_RARELY o HardwareBuffer#USAGE_CPU_WRITE_OFTEN e scrivere nei buffer di ImageReader potrebbe interrompere i presupposti effettuati da alcuni produttori e deve essere usato con cautela.
ImageReader Se viene usato come destinazione di output per un android.hardware.camera2.CameraDeviceoggetto e se il flag di utilizzo contiene HardwareBuffer#USAGE_VIDEO_ENCODE, i timestamp dell'oggetto Image images prodotto da ImageReader non si trovano nella stessa timebase di android.os.SystemClock#elapsedRealtimeNanos, anche se android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE è android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME. I timestamp saranno invece approssimativamente nella stessa timebase di , android.os.SystemClock#uptimeMillisin modo che la sincronizzazione A/V funzioni per la registrazione video. In questo caso, i timestamp del ImageReader con HardwareBuffer#USAGE_VIDEO_ENCODE flag di utilizzo potrebbero non essere direttamente confrontabili con i timestamp di altri flussi o i metadati dei risultati di acquisizione.
per android.media.ImageReader.newInstance(int, int, int, int, long).
Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.