QPixmap / QBitmap
最后更新于:2022-04-02 02:13:22
[TOC]
## QPixmap
专门为图像在屏幕上的显示做了优化;
QPixmap使用底层平台的绘制系统进行绘制,无法提供像素级别的操作,QImage 提供了像素级别的绘制
## QBitmap
1. 是QPixmap的一个子类
2. 主要用于显示**单色位图**
3. 它的色深限定为1,你可以使用 QPixmap的isQBitmap()函数来确定这个QPixmap是不是一个QBitmap
## 实例
## simlpe
```
void Label::paintEvent(QPaintEvent *event)
{
QBitmap img(":/1.jpeg");
// QPixmap img(":/1.jpeg");
QPainter painter(this);
painter.drawPixmap(10,10,128,128,img);
}
```
### 比较pixmap 与bitmap 的差异
```
void PaintedWidget::paintEvent(QPaintEvent *event)
{
QPainter painter(this);
// Cat.png 背景为纯白
QPixmap pixmap("Cat.png");
QBitmap bitmap("Cat.png");
painter.drawPixmap(10, 10, 128, 128, pixmap);
painter.drawPixmap(140, 10, 128, 128, bitmap);
/// Cat2.png 背景为透明
QPixmap pixmap2("Cat2.png");
QBitmap bitmap2("Cat2.png");
painter.drawPixmap(10, 140, 128, 128, pixmap2);
painter.drawPixmap(140, 140, 128, 128, bitmap2);
}
```
![](http://img-blog.csdn.net/20140922192902053?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenp3ZGt4eA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
**区别**
1. 白色的背景在Qbitmap中消失了
2. 透明色在QBitmap中转换成了黑色;其他颜色则是使用点的疏密程度来体现的
';