Qt Creator 模块学习 ——2D绘图(绘图设备)

绘图设备

绘图设备包括:QPixmap,QImage,QPicture

1.QPixmap

特点:针对屏幕进行优化,和平台相关。不可以对图片修改。
使用方式:

  //绘图设备,
    QPixmap pixmap(600,800);
    QPainter p(&pixmap);
    p.drawPixmap(0,0,80,80,QPixmap("../image/1.jpg"));
    //保存图片
    pixmap.save("../pixmap.jpg");

效果:
Qt Creator 模块学习 ——2D绘图(绘图设备)_第1张图片

2.QImage

特点:和平台无关,可以对图片修改(在线程里边绘图)。
使用方式:

  QImage image(400,300,QImage::Format_ARGB32);
    QPainter p;
    p.begin(&image);
    //绘图
    p.drawImage(0,0,QImage("../image/1.jpg"));
    //进行像素操作
    for(int i=0;i<100;i++){
     
        for(int j=0;j<100;j++){
     
            image.setPixel(QPoint(i,j), qRgb(0,0,255));
        }
    }
    p.end();
    image.save("../image.jpg");

效果:
Qt Creator 模块学习 ——2D绘图(绘图设备)_第2张图片

3.QPicture

特点:保存绘图的状态(保存为二进制文件)。
使用方式:

  QPicture picture;
   QPainter p;
   p.begin(&picture);
   p.drawPixmap(0,0,80,80,QPixmap("../image/1.png"));
   p.drawLine(50,50,150,50);
   p.end();
   picture.save("../picture.jpg");

效果:此处会显示无法以jpg形式打开,因为他是二进制文件。

QPixmap和QImage相互转换

   QPainter p(this);
  QPixmap pixmap;
  pixmap.load("../image/1.png");
  //QPixmap->>QImage
  QImage image = pixmap.toImage();
  p.drawImage(0,0,image);
  QImage image1;
  image1.load("../image/1.png");
  //QImage->>QPixmap
  QPixmap pixmap1=QPixmap::fromImage(image);
  p.drawPixmap(100,0,pixmap);

你可能感兴趣的:(Qt,Creator模块学习,深度学习,经验分享,qt5)