ImageDecoder 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
인코딩된 이미지(예: PNG
, , JPEG
WEBP
또는GIF
HEIF
)를 개체 Bitmap
로 Drawable
변환하기 위한 클래스입니다.
[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
)를 개체 Bitmap
로 Drawable
변환하기 위한 클래스입니다.
사용하려면 먼저 오버로드 중 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
합니다#decodeBitmap(Source, OnHeaderDecodedListener)
.OnHeaderDecodedListener OnHeaderDecodedListener
#decodeDrawable(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
코딩된 이미지에 대한 정보(예: 너비 및 높이)가 포함되며Source Source
, 단일 OnHeaderDecodedListener OnHeaderDecodedListener
이미지를 여러 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();
}
기본적으로 Bitmap
만든 ImageDecoder
사람(내부에 Drawable
있는 항목 포함)은 변경할 수 없으며(즉 Bitmap#isMutable Bitmap.isMutable()
, 반환 false
) 일반적으로 포함 Config
Bitmap.Config#HARDWARE
됩니다. 이러한 속성은 (호환 #decodeBitmap(Source)
및 호환만 가능)으로 #setMutableRequired setMutableRequired(true)
변경할 수 있지만 #setAllocator
최종 반환된 개체의 변경 가능성에 관계없이 사용자 지정 효과를 적용 PostProcessor
할 #setPostProcessor setPostProcessor
수도 #decodeBitmap(Source, OnHeaderDecodedListener)
있습니다. 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;
});
});
인코딩된 이미지가 불완전하거나 오류가 포함되어 있거나 디코딩 DecodeException DecodeException
중에 발생하는 경우 Exception
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.ImageDecoder
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
필드
AllocatorDefault |
사용되지 않음.
픽셀 메모리에 대한 기본 할당을 사용합니다. |
AllocatorHardware |
사용되지 않음.
을 요구합니다 |
AllocatorSharedMemory |
사용되지 않음.
픽셀 메모리에 공유 메모리를 사용합니다. |
AllocatorSoftware |
사용되지 않음.
픽셀 메모리에 소프트웨어 할당을 사용합니다. |
MemoryPolicyDefault |
사용되지 않음.
내부 |
MemoryPolicyLowRam |
사용되지 않음.
일부 이미지 품질의 비용으로 조밀도 |
속성
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() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
SetTargetColorSpace(ColorSpace) |
출력에 원하는 |
SetTargetSampleSize(Int32) |
sampleSize를 사용하여 대상 크기를 설정합니다. |
SetTargetSize(Int32, Int32) |
출력 |
ToArray<T>() |
인코딩된 이미지(예: |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
인코딩된 이미지(예: |
Wait() |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.> (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다. (다음에서 상속됨 Object) |
이벤트
PartialImage |
인코딩된 이미지(예: |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
인코딩된 이미지(예: |
IJavaPeerable.DisposeUnlessReferenced() |
인코딩된 이미지(예: |
IJavaPeerable.Finalized() |
인코딩된 이미지(예: |
IJavaPeerable.JniManagedPeerState |
인코딩된 이미지(예: |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
인코딩된 이미지(예: |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
인코딩된 이미지(예: |
IJavaPeerable.SetPeerReference(JniObjectReference) |
인코딩된 이미지(예: |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
인코딩된 이미지(예: |
GetJniTypeName(IJavaPeerable) |
인코딩된 이미지(예: |