本文为原创文章转载请注明出處,或注明转载自“黄邦勇帅(原名:黄勇)
若对C++语法不熟悉建议参阅《C++语法详解》一书,电子工业出版社出版该书语法示例短小精悍,對查阅C++知识点相当方便并对语法原理进行了透彻、深入详细的讲解,可确保读者彻底弄懂C++的原理彻底解惑C++,使其知其然更知其所以然此书是一本全面了解C++不可多得的案头必备图书。
2、像素图的加载和存储
示例12.29:把像素图保存到文件与绘制到QWidget部件的区别
运行结果及说明見图12-68
//绘制的直线为(0,200,200,200)可在F盘找到该文件进行查看
4、像素图的复制、填充、替换
5、像素图的缩放与滚动
示例12.30:像素图的缩放(结果见图12-69)
//在给定矩形(100,100)内,图像尺寸在保持纵横比的情形下图像保持最大矩形。
//在给定矩形外图像尺寸在保持纵横比的情形下,图像外部尺寸保持尽可能小的矩形
示例12.31:图像滚动原理
在绘图软件中,蒙版类似于蒙在原始图片上的一块玻璃(即蒙版)然后我们再在这块玻璃上使用其他工具對图片进行修改,这样就不会破坏原始图片而又能看到图片修改后的效果。
蒙版通常是黑白色的通常通过改变蒙版(玻璃)的灰度可改变蒙版的透明度,从而可使原始图片变为可见、不可见、透明三种效果也就是说蒙版本身只能改变透明度,并不能改变原始图像的色彩或其他性质(这些性质的改变需借助其他工具)
蒙版很少有彩色蒙版,几乎都是黑白色的(即只能通过灰度改变透明度)虽然可使用蒙版蒙住原始图的某个通道,但蒙版本身仍是黑白色的比如使用蒙版蒙住红色通道,则通过改变蒙版本身的透明度可使原始图的红色变为可见、鈈可见或透明,但蒙版本身并不是彩色的
Qt通常使用QBitmap类来保存蒙版,QBitmap类是一个只有1位深度的图像因此Qt的蒙版只能在可见和不可见之间变換,不能实现透明度的效果
注意:被蒙板黑色部分遮挡的像素会被显示,被白色部分遮档的像素不会被显示白色:显示、不透明。黑銫:隐藏、透明
下面为QPixmap类中与蒙版有关的函数
运行结果及说明(见图12-74)
QBitmap类继承自QPixmap,该类描述的是1位深度(单色)的像素图即只有两种色的像素圖。该类主要用于创建自定义的QCursor(光标)对象、QRegion对象及设置图像的蒙版等
若把深度大于1的像素图分配给QBitmap,则QBitmap将自动抖动
使用Qt::color0将位图的位设置为0,使用Qt::color1把位图的位设置为1其中0表示背景(透明像素),1表示前景(不透明像素)注意:使用Qt::black(黑色)和Qt::white(白色)没有意义。位图的效果见图12-75
? 使鼡变换矩阵matrix变换位图,并返回变换后的副本
本文作者:黄邦勇帅(原名:黄勇)
}