项目中有用到QBrush支持贴图片纹理实现自定义画笔类型。
使用的接口有
void QBrush::setTexture(const QPixmap &pixmap)
void QBrush::setTextureImage(const QImage &image)
帮助文档的介绍
有两种接口,有加载QPixmap和QImage两种方式。文档中介绍,笔刷颜色仅对单色像素图有效,比如位深度为1的图片。这是关键点,不是任何图片都能够使用。QBrush贴图纹理的方式是整个画板都填充满了加载的纹理图片,但没有显现出来,画线的过程中就是笔经过的位置就显现出相应位置的填充效果。
文档中介绍的纹理填充效果
如下图所示,使用TexturePattern方式填充的时候,整个底部其实是已经填充满了我们加载的图片,画线的时候把其中一部分显示出来
至于单色图片,这就需要美工来弄了。简单的一个办法是使用画图工具保存bmp的方式,选择单色图片就行保存。单色图片一般都是bmp类型的,png是没有的。使用这种方式基本是没有用的,原来的图片会变样的,只是用来验证单色图片能用。
真正的效果还得ps切图来实现,使用灰度模式进行编辑,而非rgb等其他类型,最后保存为bmp,可能最后选择位深度的时候最低可能只是4,但依然是单色图片,是可以使用的。