ImageDecoder クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
エンコードされたイメージ ( PNG、 JPEG、 WEBP、 GIF、 HEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。
[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
- 継承
- 属性
- 実装
注釈
エンコードされたイメージ ( PNG、 JPEG、 WEBP、 GIF、 HEIFなど) を Drawable または Bitmap オブジェクトに変換するためのクラス。
これを使用するには、まず、createSourceオーバーロードのいずれかを使用してSource Sourceを作成します。 たとえば、 Uriからデコードするには、 #createSource(ContentResolver, Uri) を呼び出し、結果を #decodeDrawable(Source) または #decodeBitmap(Source)に渡します。
File file = new File(...);
ImageDecoder.Source source = ImageDecoder.createSource(file);
Drawable drawable = ImageDecoder.decodeDrawable(source);
既定の設定を変更するには、 Source Source と OnHeaderDecodedListener OnHeaderDecodedListener を #decodeDrawable(Source, OnHeaderDecodedListener) または #decodeBitmap(Source, OnHeaderDecodedListener)に渡します。 たとえば、元のイメージの幅と高さの半分のサンプリングされたイメージを作成するには、OnHeaderDecodedListener#onHeaderDecoded onHeaderDecoded内で#setTargetSampleSize setTargetSampleSize(2)を呼び出します。
OnHeaderDecodedListener listener = new OnHeaderDecodedListener() {
public void onHeaderDecoded(ImageDecoder decoder, ImageInfo info, Source source) {
decoder.setTargetSampleSize(2);
}
};
Drawable drawable = ImageDecoder.decodeDrawable(source, listener);
ImageInfo ImageInfoには、エンコードされたイメージに関する情報 (幅や高さなど) が含まれており、1 つのOnHeaderDecodedListener OnHeaderDecodedListenerが複数のSource Source オブジェクトで使用されている場合、Source Sourceを使用して特定のSource Sourceに一致させることができます。
OnHeaderDecodedListener OnHeaderDecodedListenerはラムダとして実装することもできます。
Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -> {
decoder.setTargetSampleSize(2);
});
エンコードされたイメージがアニメーション化された GIF または WEBPの場合、 #decodeDrawable decodeDrawable は AnimatedImageDrawableを返します。 アニメーションを開始するには、 AnimatedImageDrawable#start AnimatedImageDrawable.start()を呼び出します。
Drawable drawable = ImageDecoder.decodeDrawable(source);
if (drawable instanceof AnimatedImageDrawable) {
((AnimatedImageDrawable) drawable).start();
}
既定では、ImageDecoderによって作成されたBitmap (Drawable内にあるものも含む) は不変になります (つまり、Bitmap#isMutable Bitmap.isMutable()はfalseを返します)、通常はConfigBitmap.Config#HARDWARE。 これらのプロパティは、 #setMutableRequired setMutableRequired(true) ( #decodeBitmap(Source) と #decodeBitmap(Source, OnHeaderDecodedListener)との互換性のみ) と #setAllocatorで変更できますが、 PostProcessor を #setPostProcessor setPostProcessorに渡すことで、最終的に返されたオブジェクトの変更可能性に関係なくカスタム効果を適用することもできます。
PostProcessorにはラムダを指定することもできます。
Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -> {
decoder.setPostProcessor((canvas) -> {
// 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;
});
});
エンコードされたイメージが不完全であるか、エラーが含まれている場合、またはデコード中に Exception が発生した場合は、 DecodeException DecodeException がスローされます。 場合によっては、 ImageDecoder が画像の一部をデコードしている可能性があります。 部分イメージを表示するには、 OnPartialImageListener OnPartialImageListener を #setOnPartialImageListener setOnPartialImageListenerに渡す必要があります。 例えば次が挙げられます。
Drawable drawable = ImageDecoder.decodeDrawable(source, (decoder, info, src) -> {
decoder.setOnPartialImageListener((DecodeException e) -> {
// 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;
});
});
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
フィールド
| 名前 | 説明 |
|---|---|
| AllocatorDefault |
古い.
ピクセル メモリの既定の割り当てを使用します。 |
| AllocatorHardware |
古い.
|
| AllocatorSharedMemory |
古い.
ピクセル メモリに共有メモリを使用します。 |
| AllocatorSoftware |
古い.
ピクセル メモリにソフトウェア割り当てを使用します。 |
| MemoryPolicyDefault |
古い.
内部 |
| MemoryPolicyLowRam |
古い.
可能であれば、ある程度の画質を犠牲にして、より高密度の |
プロパティ
| 名前 | 説明 |
|---|---|
| Allocator |
ピクセル メモリのアロケーターを返します。 または、ピクセル メモリのバッキングを選択します。 |
| Class |
この |
| Crop |
トリミングする四角形 (設定されている場合) を返します。 または、(場合によっては) スケーリングされたイメージの |
| DecodeAsAlphaMaskEnabled |
単一チャネル入力をアルファとして扱うかどうかを返します。 または、出力をアルファ マスクとして扱う可能性があるかどうかを指定します。 |
| Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
| JniIdentityHashCode |
エンコードされたイメージ ( |
| JniPeerMembers |
エンコードされたイメージ ( |
| MemorySizePolicy |
デコードされた |
| MutableRequired |
デコードされた |
| OnPartialImageListener |
このオブジェクトの |
| PeerReference |
エンコードされたイメージ ( |
| PostProcessor |
現在設定されている |
| ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
| ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 (継承元 Object) |
| UnpremultipliedRequired |
|
メソッド
| 名前 | 説明 |
|---|---|
| Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
| Close() |
基になるリソースを放棄して、このリソースを閉じます。 |
| CreateSource(AssetManager, String) |
|
| CreateSource(Byte[], Int32, Int32) |
|
| CreateSource(Byte[]) |
|
| CreateSource(ByteBuffer) |
|
| CreateSource(ContentResolver, Uri) |
|
| CreateSource(File) |
|
| CreateSource(ICallable) |
|
| CreateSource(Resources, Int32) |
|
| DecodeBitmap(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
|
| DecodeBitmap(ImageDecoder+Source) |
|
| DecodeDrawable(ImageDecoder+Source, ImageDecoder+IOnHeaderDecodedListener) |
|
| DecodeDrawable(ImageDecoder+Source) |
|
| Dispose() |
エンコードされたイメージ ( |
| Dispose(Boolean) |
エンコードされたイメージ ( |
| Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
| GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
| IsMimeTypeSupported(String) |
指定された MIME の種類が、このクラスでデコードできるサポートされているファイル形式である場合に返します。 |
| JavaFinalize() |
オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
| Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
| NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
| SetTargetColorSpace(ColorSpace) |
出力に必要な |
| SetTargetSampleSize(Int32) |
sampleSize を使用してターゲット サイズを設定します。 |
| SetTargetSize(Int32, Int32) |
出力 |
| ToArray<T>() |
エンコードされたイメージ ( |
| ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
| UnregisterFromRuntime() |
エンコードされたイメージ ( |
| Wait() |
現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。 (継承元 Object) |
| Wait(Int64, Int32) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
| Wait(Int64) |
現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。 (継承元 Object) |
イベント
| 名前 | 説明 |
|---|---|
| PartialImage |
エンコードされたイメージ ( |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IJavaPeerable.Disposed() |
エンコードされたイメージ ( |
| IJavaPeerable.DisposeUnlessReferenced() |
エンコードされたイメージ ( |
| IJavaPeerable.Finalized() |
エンコードされたイメージ ( |
| IJavaPeerable.JniManagedPeerState |
エンコードされたイメージ ( |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
エンコードされたイメージ ( |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
エンコードされたイメージ ( |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
エンコードされたイメージ ( |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
エンコードされたイメージ ( |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|