ImageReader.NewInstance Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Surcharges
| Nom | Description |
|---|---|
| NewInstance(Int32, Int32, ImageFormatType, Int32) |
Créez un lecteur pour les images de la taille et du format souhaités. |
| NewInstance(Int32, Int32, ImageFormatType, Int32, Int64) |
Créez un lecteur pour les images de la taille, du format et de l’indicateur d’utilisation du consommateur souhaités. |
NewInstance(Int32, Int32, ImageFormatType, Int32)
Créez un lecteur pour les images de la taille et du format souhaités.
[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
Paramètres
- width
- Int32
Largeur par défaut en pixels des images produites par ce lecteur.
- height
- Int32
Hauteur par défaut en pixels des images produites par ce lecteur.
- format
- ImageFormatType
Format de l’image produite par ce lecteur. Il doit s’agir de l’une des constantes ou android.graphics.PixelFormat de l’une android.graphics.ImageFormat des constantes. Notez que tous les formats ne sont pas pris en charge, comme ImageFormat.NV21.
- maxImages
- Int32
Nombre maximal d’images que l’utilisateur souhaite accéder simultanément. Cela doit être aussi petit que possible pour limiter l’utilisation de la mémoire. Une fois que maxImages Images sont obtenues par l’utilisateur, l’une d’elles doit être publiée avant qu’une nouvelle image devienne disponible pour l’accès via #acquireLatestImage() ou #acquireNextImage().
Doit être supérieure à 0.
Retours
- Attributs
Remarques
Créez un lecteur pour les images de la taille et du format souhaités.
Le maxImages paramètre détermine le nombre maximal d’objets Image qui peuvent être acquis simultanément ImageReader . La demande de mémoires tampons supplémentaires utilise davantage de mémoire. Il est donc important d’utiliser uniquement le nombre minimal nécessaire pour le cas d’usage.
Les tailles et formats valides dépendent de la source des données d’image.
Si c’est ImageFormat#PRIVATE PRIVATEle format cas, la création ImageReader produit des images qui ne sont pas directement accessibles par l’application. L’application peut toujours acquérir des images à partir de ceci ImageReaderet les envoyer à la android.hardware.camera2.CameraDevice camera retraitement via ImageWriter l’interface. Toutefois, le Image#getPlanes() getPlanes() tableau retourne un tableau vide pour ImageFormat#PRIVATE PRIVATE les images de format. L’application peut vérifier si le format d’un lecteur existant en appelant #getImageFormat().
ImageFormat#PRIVATE PRIVATE le format ImageReader ImageReaders est plus efficace à utiliser lorsque l’accès aux données d’image n’est pas nécessaire par rapport à ImageReaders à l’aide d’autres formats tels que ImageFormat#YUV_420_888 YUV_420_888.
Java documentation pour android.media.ImageReader.newInstance(int, int, int, int).
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.
Voir aussi
S’applique à
NewInstance(Int32, Int32, ImageFormatType, Int32, Int64)
Créez un lecteur pour les images de la taille, du format et de l’indicateur d’utilisation du consommateur souhaités.
[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
Paramètres
- width
- Int32
Largeur par défaut en pixels des images produites par ce lecteur.
- height
- Int32
Hauteur par défaut en pixels des images produites par ce lecteur.
- format
- ImageFormatType
Format de l’image produite par ce lecteur. Il doit s’agir de l’une des constantes ou android.graphics.PixelFormat de l’une android.graphics.ImageFormat des constantes. Notez que tous les formats ne sont pas pris en charge, comme ImageFormat.NV21.
- maxImages
- Int32
Nombre maximal d’images que l’utilisateur souhaite accéder simultanément.
Cela doit être aussi petit que possible pour limiter l’utilisation de la mémoire. Une fois que maxImages Images sont obtenues par l’utilisateur, l’une d’elles doit être publiée avant qu’une nouvelle image devienne disponible pour l’accès via #acquireLatestImage() ou #acquireNextImage(). Doit être supérieure à 0.
- usage
- Int64
Utilisation prévue des images produites par cet ImageReader. Consultez les utilisations sur HardwareBuffer une liste de bits d’utilisation valides. Consultez également HardwareBuffer#isSupported(int, int, int, int, long) pour vérifier si une combinaison est prise en charge. S’il n’est pas pris en charge, cela lève un IllegalArgumentException.
Retours
- Attributs
Remarques
Créez un lecteur pour les images de la taille, du format et de l’indicateur d’utilisation du consommateur souhaités.
Le maxImages paramètre détermine le nombre maximal d’objets Image qui peuvent être acquis simultanément ImageReader . La demande de mémoires tampons supplémentaires utilise davantage de mémoire. Il est donc important d’utiliser uniquement le nombre minimal nécessaire pour le cas d’usage.
Les tailles et formats valides dépendent de la source des données d’image.
La combinaison d’indicateurs de format et d’utilisation décrit comment la mémoire tampon sera utilisée par les points de terminaison du consommateur. Par exemple, si l’application a l’intention d’envoyer les images à android.media.MediaCodec ou android.media.MediaRecorder pour l’encodage vidéo matériel, la combinaison d’indicateurs de format et d’utilisation doit être ImageFormat#PRIVATE PRIVATE et HardwareBuffer#USAGE_VIDEO_ENCODE. Lorsqu’un ImageReader objet est créé avec une taille valide et une combinaison d’indicateurs de format/utilisation de ce type, l’application peut envoyer l’objet Image images à un ImageWriter objet créé avec l’entrée android.view.Surface fournie par le android.media.MediaCodec ou android.media.MediaRecorder.
Si c’est ImageFormat#PRIVATE PRIVATEle format cas, la création ImageReader produit des images qui ne sont pas directement accessibles par l’application. L’application peut toujours acquérir des images à partir de ce ImageReaderfichier et les envoyer à la android.hardware.camera2.CameraDevice camera reprocesseur, ou à l’encodageandroid.media.MediaRecorderandroid.media.MediaCodec / vidéo matériel via ImageWriter l’interface. Toutefois, le Image#getPlanes() getPlanes() tableau retourne un tableau vide pour ImageFormat#PRIVATE PRIVATE les images de format. L’application peut vérifier si le format d’un lecteur existant en appelant #getImageFormat().
ImageFormat#PRIVATE PRIVATE le format ImageReader ImageReaders est plus efficace à utiliser lorsque l’accès aux données d’image n’est pas nécessaire par rapport à ImageReaders à l’aide d’autres formats tels que ImageFormat#YUV_420_888 YUV_420_888.
Notez que toutes les combinaisons d’indicateurs de format et d’utilisation ne sont pas prises en charge par le ImageReader. Voici les combinaisons prises en charge par le ImageReader (en supposant que les points de terminaison du consommateur prennent en charge la consommation de ces images, par exemple, l’encodage vidéo matériel).
<tableau><tr><th Format</th><>>Indicateurs d’utilisation compatibles</th></tr tr tr><><td>non-formatsandroid.graphics.ImageFormat#PRIVATE PRIVATE définis par android.graphics.ImageFormat ImageFormat ou<android.graphics.PixelFormat PixelFormat /td><tdHardwareBuffer#USAGE_CPU_READ_RARELY> ou<HardwareBuffer#USAGE_CPU_READ_OFTEN /td></tr<>tr<>td<android.graphics.ImageFormat#PRIVATE>/td/td td>>HardwareBuffer#USAGE_VIDEO_ENCODE< ou HardwareBuffer#USAGE_GPU_SAMPLED_IMAGE, ou combiné</td<>/tr<>/table> À l’aide d’autres combinaisons peuvent entraîner .IllegalArgumentException En outre, la spécification HardwareBuffer#USAGE_CPU_WRITE_RARELY ou HardwareBuffer#USAGE_CPU_WRITE_OFTEN l’écriture dans les mémoires tampons d’ImageReader peut interrompre les hypothèses faites par certains producteurs et doit être utilisée avec précaution.
Si l’objet ImageReader est utilisé comme cible de sortie pour un android.hardware.camera2.CameraDevice, et si l’indicateur d’utilisation contient HardwareBuffer#USAGE_VIDEO_ENCODE, les horodatages du Image images produit ImageReader ne seront pas dans le même temps que android.os.SystemClock#elapsedRealtimeNanos, même si c’est le cas android.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCEandroid.hardware.camera2.CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME. Au lieu de cela, les horodatages seront approximativement dans la même base de temps que dans android.os.SystemClock#uptimeMillis, afin que la synchronisation A/V puisse fonctionner pour l’enregistrement vidéo. Dans ce cas, les horodatages de l’indicateur ImageReaderHardwareBuffer#USAGE_VIDEO_ENCODE d’utilisation peuvent ne pas être directement comparables aux horodatages d’autres flux ou capturer des métadonnées de résultat.
Java documentation pour android.media.ImageReader.newInstance(int, int, int, int, long).
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.