THotPDF.DecodeLoadedImageColorKeyMask Method
dictionary에 배열 /Mask 항목을 담은 로드된 이미지에 대해 컬러 키 마스크 비트맵을 만듭니다
선언
function DecodeLoadedImageColorKeyMask(
AImageStream: THPDFStreamObject): TBitmap;
유닛
HPDFDoc
매개변수
| 이름 | 목적 |
|---|---|
AImageStream | dictionary에 컬러 키 /Mask 배열을 담고 있는 로드된 이미지 스트림 객체 |
반환 값
이미지 크기와 같은 24비트 회색조 비트맵입니다. 각 성분 범위 안에 샘플이 모두 들어오는 픽셀은 검정, 어느 성분 하나라도 범위를 벗어나는 픽셀은 흰색으로 표시되고, 이미지가 조건에 맞지 않으면 nil을 반환합니다
사용 참고 사항
- 적용 조건은 PDF 컬러 키 마스킹 규칙을 그대로 따릅니다. 이미지를 디코딩할 수 있어야 하고, image mask가 아니어야 하며, 색 성분이 1~4개여야 하고, 성분별 값 2개로 이루어진 /Mask 배열을 가져야 합니다
- 범위는
/Decode전, 샘플이 저장된 그대로 비교합니다. Indexed 이미지라면 팔레트 인덱스이므로 같은 색의 두 항목이 서로 다르게 마스크될 수 있습니다 - DCTDecode, JPXDecode, JBIG2Decode, CCITT로 인코딩된 스트림은 nil을 반환합니다. 손실 코덱은 정확한 샘플 값을 보존하지 않기 때문입니다
RenderLoadedPageToBitmap과BuildLoadedPageSVG는 이미지를 그릴 때 이 마스크를 적용합니다- 디코딩은 설정된 decode 바이트 예산을 지키므로 악성이거나 지나치게 큰 이미지도 메모리를 소진하지 않고 깔끔하게 실패합니다
- 반환된 비트맵의 소유권은 호출자에 있습니다.
DecodeLoadedImageStream과 함께 쓰면 뷰어가 마스크로 취급할 영역을 미리 확인할 수 있습니다