Метод IXpsRasterizer::RasterizeRect (xpsrassvc.h)
Метод RasterizeRect растеризует выровненную по оси прямоугольную область фиксированной страницы XPS.
Синтаксис
HRESULT RasterizeRect(
[in] INT x,
[in] INT y,
[in] INT width,
[in] INT height,
[in, optional] IXpsRasterizerNotificationCallback *notificationCallback,
[out, optional] IWICBitmap **bitmap
);
Параметры
[in] x
Координата x в пикселях на левом крае выходного растрового изображения.
[in] y
Координата y в пикселях на верхнем крае выходного растрового изображения.
[in] width
Ширина выходного растрового изображения в пикселях.
[in] height
Высота выходного растрового изображения в пикселях.
[in, optional] notificationCallback
Указатель на интерфейс IXpsRasterizerNotificationCallback объекта уведомления, который реализуется вызывающим объектом. Этот параметр является необязательным и может иметь значение NULL , если вызывающий объект не требует обратных вызовов уведомлений.
[out, optional] bitmap
Указатель на расположение, в которое метод записывает указатель на интерфейс IWICBitmap только что созданного растрового объекта. В случае сбоя метода в это расположение записывается значение NULL и возвращается код ошибки.
Возвращаемое значение
RasterizeRect возвращает S_OK, если вызов был успешным. В противном случае метод возвращает код ошибки. Возможные возвращаемые значения ошибок:
Код возврата | Описание |
---|---|
E_POINTER | Растровое изображение параметра имеет значение NULL. |
E_INVALIDARG | Ширина или высота параметра меньше или равна 0. |
Комментарии
Этот метод поддерживается в Windows 7 и более поздних версиях. Он не поддерживается в версиях операционной системы Windows, предшествующих Windows 7.
В случае успешного выполнения этот метод создает объект точечных изображений Windows (WIC) и передает вызывающей объекту подсчитываемую ссылку на интерфейс IWICBitmap объекта. Если объект больше не нужен, вызывающий объект отвечает за освобождение объекта путем вызова метода Release в интерфейсе IWICBitmap объекта.
Точечный рисунок WIC, созданный этим методом, имеет 32-разрядный формат пикселей, который содержит 8-разрядные красные, зеленые и синие каналы и использует стандартное цветовое пространство RGB (sRGB). Кроме того, формат содержит 8-разрядный альфа-компонент. Компоненты цвета в каждом значении пикселя предварительно умножаются на альфа-компонент. Формат пикселей определяется значением GUID GUID_WICPixelFormat32bppPBGRA, которое определяется в файле заголовка Wincodec.h. Дополнительные сведения об этом формате см. в статье Общие сведения о форматах собственных пикселей.
Параметр DPI метода IXpsRasterizationFactory::CreateRasterizer задает разрешение (в точках на дюйм), при котором должно быть отрисовывается растровое изображение. Как описано в спецификации XPS, ширина и высота фиксированной страницы в документе XPS указываются в единицах 1/96 дюйма. Чтобы определить размеры (в пикселях) растрового изображения, необходимого для представления всей фиксированной страницы, умножьте ширину и высоту на DPI/96.
Для размещения принтеров, для которых требуется растеризация фиксированной страницы в виде ряда горизонтальных или вертикальных полос, параметры x, y, ширина и высота указывают прямоугольную область фиксированной страницы, которая должна быть растеризована. Все четыре значения параметров указываются в пикселях. Параметры x и y — это координаты верхнего, левого угла прямоугольной области; они указываются как смещения пикселей от источника координат (0, 0). Параметры ширины и высоты — это размеры прямоугольной области.
Например, если wXPS и hXPS — это ширина и высота фиксированной страницы XPS в единицах 1/96 дюймов, RasterizeRect создает растровое представление нижней части фиксированной страницы, если параметры x, y, ширина и высота имеют следующие значения:
xyhDPIширинаwвысота точек на дюймhDPI
Если параметр notificationCallback не равен NULL, метод RasterizeRect принимает подсчитываемую ссылку на интерфейс IXpsRasterizerNotificationCallback объекта уведомления. Это делается путем вызова метода AddRef в интерфейсе перед выполнением каких-либо вызовов метода IXpsRasterizerNotificationCallback::Continue . Перед возвратом RasterizeRect объект уведомления освобождается путем вызова метода Release в интерфейсе *IXpsRasterizerNotificationCallback .
Как описано в спецификации XPS, необязательный атрибут BleedBox может указывать поле BleedBox , которое выходит за пределы фиксированной страницы. Для размещения прямоугольников с истекаемой кровью прямоугольник, определяемый параметрами x, y, ширина и высота , также может выходить за границы фиксированной страницы. Метод принимает любые значения, положительные или отрицательные, для x и y, а также принимает любые положительные, ненулевые значения для ширины и высоты. Прямоугольник, заданный этими параметрами, определяет область отсечения для операции растеризации. Если прямоугольник выходит за пределы фиксированной страницы, область обрезки также выходит за эти границы.
Если метод завершается ошибкой и битовое изображение не равно NULL, метод задает *растровое изображение = NULL.
Пример кода, который вызывает метод RasterizeRect , см. в примере XPSRasFilter в WDK. Этот пример находится в папке Src\Print\Xpsrasfilter в вашей установке WDK.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 7 и более поздних версиях операционной системы Windows. |
Целевая платформа | Персональный компьютер |
Верхняя часть | xpsrassvc.h |
См. также раздел
IXpsRasterizationFactory::CreateRasterizer