ImageDecoder 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
인코딩된 이미지(예: PNG, , JPEGWEBP또는GIFHEIF)를 개체 Drawable 로 Bitmap 변환하기 위한 클래스입니다.
[Android.Runtime.Register("android/graphics/ImageDecoder", ApiSince=28, DoNotGenerateAcw=true)]
public sealed class ImageDecoder : Java.Lang.Object, IDisposable, 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, , JPEGWEBP또는GIFHEIF)를 개체 Drawable 로 Bitmap 변환하기 위한 클래스입니다.
사용하려면 먼저 오버로드 중 Source Source 하나를 사용하여 만듭니 createSource 다. 예를 들어 , 에서 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) 예를 들어 원본 이미지의 너비와 높이의 절반으로 샘플링된 이미지를 만들려면 다음 내부#setTargetSampleSize setTargetSampleSize(2)를 호출 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);
인 ImageInfo ImageInfo 코딩된 이미지에 대한 정보(예: 너비 및 높이)가 포함되며Source Source, 단일 Source Source 이미지를 여러 OnHeaderDecodedListener OnHeaderDecodedListener 개체와 함께 사용하는 경우 특정 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();
}
기본적으로 Bitmap 만든 ImageDecoder 사람(내부에 Drawable있는 항목 포함)은 변경할 수 없으며(즉 Bitmap#isMutable Bitmap.isMutable() , 반환 false) 일반적으로 포함 ConfigBitmap.Config#HARDWARE됩니다. 이러한 속성은 (호환 #setMutableRequired setMutableRequired(true) 및 호환만 가능)으로 #decodeBitmap(Source) 변경할 수 있지만 #decodeBitmap(Source, OnHeaderDecodedListener)최종 반환된 개체의 변경 가능성에 관계없이 사용자 지정 효과를 적용 #setAllocator 할 PostProcessor수도 #setPostProcessor setPostProcessor있습니다. A는 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 throw됩니다. 경우에 따라 이미지의 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;
});
});
에 대한 android.graphics.ImageDecoderJava 설명서
이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.
필드
| 속성 | Description |
|---|---|
| AllocatorDefault |
사용되지 않음.
픽셀 메모리에 대한 기본 할당을 사용합니다. |
| AllocatorHardware |
사용되지 않음.
을 요구합니다 |
| AllocatorSharedMemory |
사용되지 않음.
픽셀 메모리에 공유 메모리를 사용합니다. |
| AllocatorSoftware |
사용되지 않음.
픽셀 메모리에 소프트웨어 할당을 사용합니다. |
| MemoryPolicyDefault |
사용되지 않음.
내부 |
| MemoryPolicyLowRam |
사용되지 않음.
일부 이미지 품질의 비용으로 조밀도 |
속성
| 속성 | Description |
|---|---|
| Allocator |
픽셀 메모리에 대한 할당자를 반환합니다. -또는- 픽셀 메모리에 대한 백업을 선택합니다. |
| Class |
이 |
| Crop |
자르기 사각형(설정된 경우)을 반환합니다. -또는- 크기 조정된 이미지의 출력을 |
| DecodeAsAlphaMaskEnabled |
단일 채널 입력을 알파로 처리할지 여부를 반환합니다. -또는- 출력을 알파 마스크로 처리할지 여부를 지정합니다. |
| DefaultProcessListener |
프로세스 수준 기본 OnHeaderDecodedListener를 반환합니다. |
| DefaultThreadListener |
스레드 수준 기본 OnHeaderDecodedListener를 반환합니다. |
| Handle |
기본 Android 인스턴스에 대한 핸들입니다. (다음에서 상속됨 Object) |
| JniIdentityHashCode |
interop 런타임에 의해 이 Java 피어에 할당된 ID 해시 코드를 가져옵니다. (다음에서 상속됨 Object) |
| JniManagedPeerState |
인코딩된 이미지(예: |
| JniPeerMembers |
인코딩된 이미지(예: |
| MemorySizePolicy |
디코딩된 |
| MutableRequired |
디코딩 |
| OnPartialImageListener |
이 개체의 값을 |
| PeerReference |
이 Java 피어에 대한 JNI 개체 참조를 가져옵니다. (다음에서 상속됨 Object) |
| PostProcessor |
현재 집합을 |
| ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Object) |
| ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. (다음에서 상속됨 Object) |
| UnpremultipliedRequired |
미리 설명되지 않은 픽셀이 있는지 여부를 |
메서드
| 속성 | Description |
|---|---|
| Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
| Close() |
이 리소스를 닫고 기본 리소스를 포기합니다. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
인코딩된 이미지(예: |
| 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() |
이 Java 피어에서 보유한 리소스를 해제합니다. (다음에서 상속됨 Object) |
| Dispose(Boolean) |
이 Java 피어에서 보유한 리소스를 해제합니다. (다음에서 상속됨 Object) |
| DisposeUnlessReferenced() |
인코딩된 이미지(예: |
| Equals(Object) |
인코딩된 이미지(예: |
| Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
| GetHashCode() |
개체에 대한 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
| IsMimeTypeSupported(String) |
지정된 MIME 형식이 이 클래스에서 디코딩할 수 있는 지원되는 파일 형식이면 반환합니다. |
| JavaFinalize() |
사용되지 않음.
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
| Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
| NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
| SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
인코딩된 이미지(예: |
| SetTargetColorSpace(ColorSpace) |
출력에 원하는 |
| SetTargetSampleSize(Int32) |
sampleSize를 사용하여 대상 크기를 설정합니다. |
| SetTargetSize(Int32, Int32) |
출력 |
| ToArray<T>() |
이 Java 배열 래퍼에서 관리되는 배열을 만듭니다. (다음에서 상속됨 Object) |
| ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
| UnregisterFromRuntime() |
interop 런타임에서 이 Java 피어의 등록을 취소합니다. (다음에서 상속됨 Object) |
| Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받><거나 ><>중단/종료<합니다.> (다음에서 상속됨 Object) |
| Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 >중단/<종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
| Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 >중단/<종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
이벤트
| 속성 | Description |
|---|---|
| DefaultProcess |
인코딩된 이미지(예: |
| DefaultThread |
인코딩된 이미지(예: |
| PartialImage |
인코딩된 이미지(예: |
명시적 인터페이스 구현
| 속성 | Description |
|---|---|
| IJavaPeerable.Disposed() |
인코딩된 이미지(예: |
| IJavaPeerable.Finalized() |
인코딩된 이미지(예: |
| IJavaPeerable.JniObjectReferenceControlBlock |
인코딩된 이미지(예: |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
인코딩된 이미지(예: |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
인코딩된 이미지(예: |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
인코딩된 이미지(예: |
| IJavaPeerable.UnregisterFromRuntime() |
인코딩된 이미지(예: |
확장명 메서드
| 속성 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
인스턴스 |
| JavaAs<TResult>(IJavaPeerable) |
형식 |
| JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
| JavaCast<TResult>(IJavaObject) |
인코딩된 이미지(예: |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
형식 |