다음을 통해 공유


인코딩 옵션을 사용하는 방법(HTML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

이 항목에서는 BitmapEncoder에서 인코딩 옵션을 설정하는 방법을 보여 줍니다. 인코딩 옵션을 사용하면 인코더의 동작과 매개 변수를 미세하게 조정할 수 있습니다. 예를 들어 JPEG 인코더에서 ImageQuality 옵션을 설정하여 이미지 품질과 파일 크기 사이의 균형을 조정할 수 있습니다. 일반적으로 인코더에서 적절한 기본값을 자동으로 선택하므로 인코딩 옵션을 사용할 필요가 없습니다.

인코딩 옵션은 BitmapEncoderCreateAsyncGoToNextFrameAsync 메서드에서만 노출됩니다. 이는 인코더나 프레임을 초기화할 때 인코딩 옵션을 지정해야 하기 때문입니다.

알아야 할 사항

기술

사전 요구 사항

인코딩 옵션 참조

BitmapEncoder에서 다음 인코딩 옵션을 사용할 수 있습니다. 인코딩 옵션은 문자열인 이름과 특정 데이터 형식(Windows.Foundation.PropertyType)의 값으로 정의됩니다.

이름 PropertyType 사용법 참고 사항 유효한 형식
ImageQuality single 유효한 값은 0에서 1.0 사이입니다. 값이 높으면 품질이 더 높습니다. JPEG, JPEG-XR
CompressionQuality single 유효한 값은 0에서 1.0 사이입니다. 값이 높으면 더 효율적이고 더 느린 압축 구조입니다. TIFF
Lossless boolean true로 설정되면 ImageQuality 옵션이 무시됩니다. JPEG-XR
InterlaceOption boolean 이미지를 인터레이스할지 여부입니다. PNG
FilterOption uint8 PngFilterMode 열거형을 사용합니다. PNG
TiffCompressionMethod uint8 TiffCompressionMode 열거형을 사용합니다. TIFF
Luminance uint32Array 광도 양자화 상수를 포함하는 64개 요소의 배열입니다. JPEG
Chrominance uint32Array 색상 양자화 상수를 포함하는 64개 요소의 배열입니다. JPEG
JpegYCrCbSubsampling uint8 JpegSubsamplingMode 열거형을 사용합니다. JPEG
SuppressApp0 boolean App0 메타데이터 블록이 생성되지 않게 할지 여부입니다. JPEG
EnableV5Header32bppBGRA boolean 알파를 지원하는 버전 5 BMP로 인코딩할지 여부입니다. BMP

 

지침

단계 1: 출력 스트림 가져오기

인코드할 파일에서 열린 IRandomAccessStream을 받는 함수의 시작 부분을 작성합니다. ReadWrite 권한을 사용하여 연 스트림을 사용하고 있어야 합니다.

function (stream) {

참고  이 예제에서는 JPEG 이미지로 인코드한다고 가정합니다. 인코딩 옵션은 이미지 형식별로 다릅니다.

 

출력 스트림을 가져오는 방법에 대해서는 새 이미지를 인코드하는 방법을 참조하세요.

단계 2: 인코딩 옵션의 컬렉션 만들기

BitmapPropertySet 개체를 사용하여 하나 이상의 인코딩 옵션을 저장할 수 있습니다. 각 인코딩 옵션은 키-값 쌍입니다. 키는 ImageQuality와 같은 인코딩 옵션의 이름으로 설정되는 문자열입니다. 값은 실제 인코딩 옵션 값을 명시적 데이터 형식(Windows.Foundation.PropertyType)과 연결할 수 있는 BitmapTypedValue 개체입니다.

이 예제에서는 사용 가능한 최대 품질을 사용하도록 JPEG 인코더를 설정하는 방법을 보여 줍니다. 품질을 설정하려면 키가 ImageQuality인 인코딩 옵션을 만들고 값을 단정밀도 숫자 1.0(가장 높은 유효한 값)으로 설정합니다.

    var propertySet = new Windows.Graphics.Imaging.BitmapPropertySet();
    var qualityValue = new Windows.Graphics.Imaging.BitmapTypedValue(
        1.0, // Maximum quality
        Windows.Foundation.PropertyType.single
        );

    propertySet.insert("ImageQuality", qualityValue);

단계 3: 인코딩 옵션을 사용하여 인코더 초기화

CreateAsync 메서드에서 인코딩 옵션을 마지막 매개 변수로 사합니다.

Windows.Graphics.Imaging.BitmapEncoder.createAsync(
        Windows.Graphics.Imaging.BitmapEncoder.jpegEncoderId,
        stream,
        propertySet
    ).then(function (encoder) {
        // Encoder is initialized with encoding options.
    });

이제 기본으로 사용할 수 있는 인코더가 준비되었습니다.

관련 항목

새 이미지를 인코드하는 방법