인코딩 옵션을 사용하는 방법(HTML)
[ 이 문서는 Windows 런타임 앱을 작성하는 Windows 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]
이 항목에서는 BitmapEncoder에서 인코딩 옵션을 설정하는 방법을 보여 줍니다. 인코딩 옵션을 사용하면 인코더의 동작과 매개 변수를 미세하게 조정할 수 있습니다. 예를 들어 JPEG 인코더에서 ImageQuality 옵션을 설정하여 이미지 품질과 파일 크기 사이의 균형을 조정할 수 있습니다. 일반적으로 인코더에서 적절한 기본값을 자동으로 선택하므로 인코딩 옵션을 사용할 필요가 없습니다.
인코딩 옵션은 BitmapEncoder의 CreateAsync 및 GoToNextFrameAsync 메서드에서만 노출됩니다. 이는 인코더나 프레임을 초기화할 때 인코딩 옵션을 지정해야 하기 때문입니다.
알아야 할 사항
기술
사전 요구 사항
- JavaScript를 사용하여 기본 Windows 런타임 앱을 만들 수 있어야 합니다. 자세한 내용은 JavaScript를 사용하여 첫 번째 Windows 런타임 앱 빌드를 참조하세요.
- BitmapEncoder를 사용하여 이미지를 인코드하는 방법을 알고 있어야 합니다. 자세한 내용은 새 이미지를 인코드하는 방법을 참조하세요.
인코딩 옵션 참조
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.
});
이제 기본으로 사용할 수 있는 인코더가 준비되었습니다.