Поделиться через


Метод 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

См. также раздел

IWICBitmap

IXpsRasterizationFactory::CreateRasterizer

IXpsRasterizer

IXpsRasterizer::SetMinimalLineWidth

IXpsRasterizerNotificationCallback