Partager via


ImageDecoder Classe

Définition

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

[Android.Runtime.Register("android/graphics/ImageDecoder", ApiSince=28, DoNotGenerateAcw=true)]
public sealed class ImageDecoder : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable
[<Android.Runtime.Register("android/graphics/ImageDecoder", ApiSince=28, DoNotGenerateAcw=true)>]
type ImageDecoder = class
    inherit Object
    interface IAutoCloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Héritage
ImageDecoder
Attributs
Implémente

Remarques

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

Pour l’utiliser, créez d’abord l’une Source Source des createSource surcharges. Par exemple, pour décoder à partir d’un Uri, appeler #createSource(ContentResolver, Uri) et passer le résultat à #decodeDrawable(Source) ou #decodeBitmap(Source):

File file = new File(...);
             ImageDecoder.Source source = ImageDecoder.createSource(file);
             Drawable drawable = ImageDecoder.decodeDrawable(source);

Pour modifier les paramètres par défaut, passez-les Source Source à ou #decodeBitmap(Source, OnHeaderDecodedListener).OnHeaderDecodedListener OnHeaderDecodedListener #decodeDrawable(Source, OnHeaderDecodedListener) Par exemple, pour créer une image échantillonné avec la moitié de la largeur et de la hauteur de l’image d’origine, appelez #setTargetSampleSize setTargetSampleSize(2) à l’intérieur OnHeaderDecodedListener#onHeaderDecoded onHeaderDecoded:

OnHeaderDecodedListener listener = new OnHeaderDecodedListener() {
                 public void onHeaderDecoded(ImageDecoder decoder, ImageInfo info, Source source) {
                     decoder.setTargetSampleSize(2);
                 }
             };
             Drawable drawable = ImageDecoder.decodeDrawable(source, listener);

Contient ImageInfo ImageInfo des informations sur l’image encodée, comme sa largeur et sa hauteur, et peut Source Source être utilisée pour correspondre à un particulier Source Source si un seul OnHeaderDecodedListener OnHeaderDecodedListener est utilisé avec plusieurs Source Source objets.

Il OnHeaderDecodedListener OnHeaderDecodedListener peut également être implémenté en tant que lambda :

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setTargetSampleSize(2);
             });

Si l’image encodée est animée GIF ou WEBP, #decodeDrawable decodeDrawable retourne un AnimatedImageDrawable. Pour démarrer son animation, appelez AnimatedImageDrawable#start AnimatedImageDrawable.start():

Drawable drawable = ImageDecoder.decodeDrawable(source);
             if (drawable instanceof AnimatedImageDrawable) {
                 ((AnimatedImageDrawable) drawable).start();
             }

Par défaut, un Bitmap créé par ImageDecoder (y compris celui qui se trouve à l’intérieur d’un Drawable) sera immuable (c’est-à-dire Bitmap#isMutable Bitmap.isMutable() retourne false), et il aura ConfigBitmap.Config#HARDWAREgénéralement . Bien que ces propriétés puissent être modifiées avec #setMutableRequired setMutableRequired(true) (qui est uniquement compatible avec #decodeBitmap(Source) et #decodeBitmap(Source, OnHeaderDecodedListener)) et #setAllocator, il est également possible d’appliquer des effets personnalisés indépendamment de la mutabilité de l’objet retourné final en passant un PostProcessor à #setPostProcessor setPostProcessor. Il PostProcessor peut également s’agir d’une expression lambda :

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setPostProcessor((canvas) -&gt; {
                         // This will create rounded corners.
                         Path path = new Path();
                         path.setFillType(Path.FillType.INVERSE_EVEN_ODD);
                         int width = canvas.getWidth();
                         int height = canvas.getHeight();
                         path.addRoundRect(0, 0, width, height, 20, 20, Path.Direction.CW);
                         Paint paint = new Paint();
                         paint.setAntiAlias(true);
                         paint.setColor(Color.TRANSPARENT);
                         paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
                         canvas.drawPath(path, paint);
                         return PixelFormat.TRANSLUCENT;
                 });
             });

Si l’image encodée est incomplète ou contient une erreur, ou si une Exception erreur se produit pendant le décodage, une DecodeException DecodeException est levée. Dans certains cas, la ImageDecoder partie décodée de l’image peut avoir été décodée. Pour afficher l’image partielle, il OnPartialImageListener OnPartialImageListener doit être passé à #setOnPartialImageListener setOnPartialImageListener. Par exemple :

Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -&gt; {
                 decoder.setOnPartialImageListener((DecodeException e) -&gt; {
                         // Returning true indicates to create a Drawable or Bitmap even
                         // if the whole image could not be decoded. Any remaining lines
                         // will be blank.
                         return true;
                 });
             });

Documentation Java pour android.graphics.ImageDecoder.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Champs

AllocatorDefault
Obsolète.

Utilisez l’allocation par défaut pour la mémoire de pixels.

AllocatorHardware
Obsolète.

Exiger un Bitmap.Config#HARDWAREBitmap.

AllocatorSharedMemory
Obsolète.

Utilisez la mémoire partagée pour la mémoire de pixels.

AllocatorSoftware
Obsolète.

Utilisez une allocation logicielle pour la mémoire de pixels.

MemoryPolicyDefault
Obsolète.

Utilisez le plus naturel Bitmap.Config pour l’interne Bitmap.

MemoryPolicyLowRam
Obsolète.

Enregistrez la mémoire si possible à l’aide d’un denser Bitmap.Config au coût d’une qualité d’image.

Propriétés

Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Crop

Retourne le rectangle de rognage, s’il est défini. -ou- Rognez la sortie vers l’image (éventuellement) mise à subset l’échelle.

DecodeAsAlphaMaskEnabled

Retournez s’il faut traiter l’entrée à canal unique comme alpha. -ou- Spécifiez s’il faut éventuellement traiter la sortie en tant que masque alpha.

Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
JniIdentityHashCode

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
JniPeerMembers

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

MemorySizePolicy

Récupérez la stratégie de mémoire pour le décodé Bitmap. -ou- Spécifiez la stratégie de mémoire pour le décodé Bitmap.

MutableRequired

Retourne si le décodé Bitmap sera mutable. -ou- Spécifiez si le Bitmap paramètre doit être mutable.

OnPartialImageListener

Définissez (remplacez) l’objet OnPartialImageListener sur cet objet.

PeerReference

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
PostProcessor

Retournez l’ensemble PostProcessor actuel. -ou- Modifiez l’image après le décodage et la mise à l’échelle.

ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

(Hérité de Object)
ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

(Hérité de Object)
UnpremultipliedRequired

Retourne si les Bitmap pixels non prédépliqués sont retournés. -ou- Spécifiez si les Bitmap pixels non prédépliqués doivent être spécifiés.

Méthodes

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Close()

Ferme cette ressource, en abandonnant toutes les ressources sous-jacentes.

CreateSource(AssetManager, String)

Créez-en un à Source partir d’un android.net.Uri.

CreateSource(Byte[], Int32, Int32)

Créez-en un à Source partir d’un android.net.Uri.

CreateSource(Byte[])

Créez-en un à Source partir d’un android.net.Uri.

CreateSource(ByteBuffer)

Créez-en un à Source partir d’un android.net.Uri.

CreateSource(ContentResolver, Uri)

Créez-en un à Source partir d’un android.net.Uri.

CreateSource(File)

Créez-en un à Source partir d’un android.net.Uri.

CreateSource(ICallable)

Créez-en un à Source partir d’un android.net.Uri.

CreateSource(Resources, Int32)

Créez-en un à Source partir d’un android.net.Uri.

DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Consultez l’article #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeBitmap(ImageDecoder+Source)

Consultez l’article #decodeBitmap(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener)

Consultez l’article #decodeDrawable(Source, OnHeaderDecodedListener).

DecodeDrawable(ImageDecoder+Source)

Consultez l’article #decodeDrawable(Source, OnHeaderDecodedListener).

Dispose()

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
Dispose(Boolean)

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
IsMimeTypeSupported(String)

Retourne si le type MIME donné est un format de fichier pris en charge qui peut être décodé par cette classe.

JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetTargetColorSpace(ColorSpace)

Spécifiez le résultat souhaité ColorSpace .

SetTargetSampleSize(Int32)

Définissez la taille cible avec un sampleSize.

SetTargetSize(Int32, Int32)

Spécifiez la taille de la sortie Drawable ou Bitmap.

ToArray<T>()

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
ToString()

Retourne une représentation de chaîne de l'objet.

(Hérité de Object)
UnregisterFromRuntime()

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou> <em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti< par> em>ou <em>interrompu/em>,< ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Événements

PartialImage

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

Implémentations d’interfaces explicites

IJavaPeerable.Disposed()

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
IJavaPeerable.DisposeUnlessReferenced()

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
IJavaPeerable.Finalized()

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
IJavaPeerable.JniManagedPeerState

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

(Hérité de Object)

Méthodes d’extension

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

GetJniTypeName(IJavaPeerable)

Classe permettant de convertir des images encodées (telles que PNG, , WEBPJPEG, GIFou HEIF) en Drawable objets ou Bitmap en objets.

S’applique à