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中转换成了黑色;其他颜色则是使用点的疏密程度来体现的
';