IXpsOMObjectFactory::CreateImageBrush 方法 (xpsobjectmodel.h)
创建 IXpsOMImageBrush 接口。
语法
HRESULT CreateImageBrush(
[in] IXpsOMImageResource *image,
[in] const XPS_RECT *viewBox,
[in] const XPS_RECT *viewPort,
[out, retval] IXpsOMImageBrush **imageBrush
);
参数
[in] image
包含要用作画笔源图像的图像的 IXpsOMImageResource 接口。
[in] viewBox
定义视图框的XPS_RECT结构,该视图框是画笔使用的源图像的区域。
[in] viewPort
定义视区的 XPS_RECT 结构,该 视区是输出区域中第一个磁贴覆盖的区域。
[out, retval] imageBrush
指向新 IXpsOMImageBrush 接口的 指针。
返回值
该方法返回 HRESULT。 可能的值包括但不限于下表中的值。 有关此表中未列出的 XPS 文档 API 返回值的信息,请参阅 XPS 文档错误。
返回代码 | 说明 |
---|---|
|
方法成功。 |
|
image、 viewBox、 viewPort 或 imageBrush 为 NULL。 |
|
viewBox 或 viewPort 包含无效的矩形或值。 |
注解
画笔的视框指定要用作磁贴图像的源图像或视觉对象的部分。
画笔视框的坐标相对于源内容,因此 (0,0) 指定源内容的左上角。 对于图像,画笔的视框指定的尺寸以 1/96“的单位表示。 源图像中的相应像素坐标的计算方式如下:
在下图中,左侧的图像是源图像的示例,最右侧是选择视图框后产生的画笔。
如果源图像分辨率为每英寸 96 x 96 点,图像尺寸为 96 x 96 像素,则 viewbox 参数中的字段值如下所示:上述参数值对应于源图像,如下所示:
- SourceLeft = (96 × 48) / 96 = 48 像素(从左侧)
- SourceTop = (96 × 24) / 96 = 距顶部 24 像素
- SourceWidth = (96 × 24) / 96 = 24 像素宽
- SourceHeight = (96 × 48) / 96 = 48 像素高
图像画笔是一种磁贴画笔,用于获取图像或其一部分,转换图像以创建磁贴,将生成的磁贴放置在视区 (磁贴的目标几何图形的输出区域) ,并按平铺模式所述填充输出区域。
视区是输出区域中第一个磁贴覆盖的区域。 视区图像在整个输出区域中重复,如平铺模式所述。
下图显示了如何使用图像画笔填充输出区域。 从左到右转换原始图像以填充视区,然后放置在输出区域的视区区域中,然后平铺以填充输出区域。
下面的代码示例演示了如何使用此方法创建新接口。
IXpsOMImageBrush *newInterface;
// The following values are defined outside of
// this example.
// IXpsOMImageResource *image;
// XPS_RECT viewBox;
// XPS_RECT viewPort;
// Note the implicit requirement that CoInitializeEx
// has previously been called from this thread.
hr = CoCreateInstance(
__uuidof(XpsOMObjectFactory),
NULL,
CLSCTX_INPROC_SERVER,
_uuidof(IXpsOMObjectFactory),
reinterpret_cast<LPVOID*>(&xpsFactory)
);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateImageBrush (
image,
&viewBox,
&viewPort,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | xpsobjectmodel.h |