THotPDF.DecodeLoadedImageColorKeyMask Method
Строит битовую карту color-key маски для загруженного изображения, чей словарь содержит массив /Mask
Объявление
function DecodeLoadedImageColorKeyMask(
AImageStream: THPDFStreamObject): TBitmap;
Модуль
HPDFDoc
Параметры
| Имя | Назначение |
|---|---|
AImageStream | Объект stream загруженного изображения, чей словарь содержит массив color-key /Mask |
Возвращаемое значение
24-битная битовая карта в оттенках серого с размерами изображения, где чёрным помечены пиксели, все выборки которых попадают в диапазоны своих компонент, а белым — пиксели, у которых хотя бы одна компонента вне своего диапазона; nil, если изображение не подходит под условия
Примечания по использованию
- Условия применимости повторяют правила color-key маскирования PDF: изображение должно декодироваться, не быть image mask, нести от 1 до 4 цветовых компонент и иметь массив /Mask с 2 значениями на компоненту
- Диапазоны сравниваются с выборками так, как они хранятся, до
/Decode; для Indexed-изображения это индекс палитры, поэтому две записи одного цвета могут маскироваться по-разному - Stream с DCTDecode, JPXDecode, JBIG2Decode и CCITT-кодированием возвращают nil: кодеки с потерями не сохраняют точные значения выборок
RenderLoadedPageToBitmapиBuildLoadedPageSVGприменяют эту маску, когда рисуют изображение- Декодирование учитывает настроенный бюджет байтов, поэтому враждебные или слишком большие изображения аккуратно завершаются ошибкой вместо исчерпания памяти
- Владелец возвращённой битовой карты — вызывающий код; объедините её с
DecodeLoadedImageStream, чтобы увидеть, какие области просмотрщик будет считать замаскированными