Qt提供了QImage、QPixmap、QBitmap和QPicture四种图像操作类。
QImage类主要用于I/O和直接逐像素访问、操作(提供了一个硬件无关的图像表示方法,该图像可以逐像素被访问和用于画图设备。)。
QPixmap主要用于在屏幕中显示图像。
QBitmap主要用于显示单色位图。用于制作游标QCursor或笔刷QBrush等,。
QPicture是一个绘图装置,用于记录和重播Qpainter的绘图指令。
QPixmap简单使用
在QLabel标签中画图
pix.load(":/new/prefix1/C:/Users/Administrator/Desktop/resources/owncloud_logo_blue.png");
ui->label->setPixmap(pix);
//输出图片宽度、高度
qDebug()<<pix.width() << "-----"<<pix.height();
//按照高度放大
QPixmap pix2 = pix.scaledToHeight(256);
ui->label_2->setPixmap(pix2);
QPixmap pix3(200,200);
//填充颜色
pix3.fill(Qt::red);
ui->label_3->setPixmap(pix3);
QImage简单使用
//从普通文件加载图片,并设置在QLabel标签中
QImage image;
QFile file("C:/Users/Administrator/Desktop/resources/ggg.png");
if(file.open(QIODevice::ReadOnly))
{
//加载文件
image.load(&file,0);
QPixmap pix = QPixmap::fromImage(image);
ui->label->setPixmap(pix);
file.close();
}
else
qDebug() <<"文件打开失败"<<file.errorString();
//-------------------------------------
QImage image2;
image2.load(":/new/prefix1/C:/Users/Administrator/Desktop/resources/owncloud_logo_blue.png");
QPixmap pix = QPixmap::fromImage(image2);
ui->label->setPixmap(pix);
//-------------------------------------
//获取100 x 100处的颜色值
QRgb rgb = image2.pixel(100,100);
//设置 从(0,0)到(100,50)区域的颜色
for(int index = 0;index < 100;index++)
{
for(int i = 0;i < 50;i++)
{
image2.setPixel(index,i,rgb);
}
}
QPixmap pix2;
pix2 = QPixmap::fromImage(image2);
ui->label_2->setPixmap(pix2);
//-------------------------------------
//将红色跟蓝色交换
QImage image3 = image2.rgbSwapped();
QPixmap pix3;
pix3 = QPixmap::fromImage(image3);
ui->label_3->setPixmap(pix3);
//-------------------------------------
//-----------设置背景色
QImage image4(200,100,QImage::Format_RGB32);
image4.fill(Qt::blue);
QPixmap pix4;
pix4 = QPixmap::fromImage(image4);
ui->label_4->setPixmap(pix4);
//-------------------------------------
//按照高度比例改变image大小
QImage image5 = image4.scaledToHeight(50);
QPixmap pix5;
pix5 = QPixmap::fromImage(image5);
ui->label_5->setPixmap(pix5);
//-------------------------------------
QBitmap简单使用
在重绘事件中:绘制
QBitmap bit(":/new/prefix1/C:/Users/Administrator/Desktop/resources/owncloud_logo_blue.png");
QPixmap pix(":/new/prefix1/C:/Users/Administrator/Desktop/resources/owncloud_logo_blue.png");
QPainter painter(this);
painter.drawPixmap(0,0,128,128,pix);
painter.drawPixmap(130,0,128,128,bit);
QMainWindow::paintEvent(e);