使用图像纹理填充形状

可以使用 Image 类和 TextureBrush 类使用纹理填充封闭形状。

以下示例用图像填充椭圆形。 代码构造 Image 对象,然后将该 Image 对象的地址作为参数传递给 TextureBrush 构造函数。 第三个代码语句缩放图像,第四个语句用缩放图像的重复副本填充椭圆:

Image image(L"ImageFile.jpg");
TextureBrush tBrush(&image);
stat = tBrush.SetTransform(&Matrix(75.0/640.0, 0.0f, 0.0f,
   75.0/480.0, 0.0f, 0.0f));
stat = graphics.FillEllipse(&tBrush,Rect(0, 150, 150, 250));

在前面的代码示例中, TextureBrush::SetTransform 方法设置在绘制图像之前应用于图像的转换。 假设原始图像的宽度为 640 像素,高度为 480 像素。 该转换通过设置水平和垂直缩放值将图像收缩到 75 ×75。

注意

在前面的示例中,图像大小为 75 ×75,椭圆大小为 150 ×250。 由于图像小于它填充的椭圆形,因此用该图像平铺椭圆形。 平铺是指图像在水平和垂直方向重复,直到达到形状的边界。 有关平铺的详细信息,请参阅 使用图像平铺形状