28黑马QT笔记之QPixmap保存图片

28黑马QT笔记之QPixmap保存图片

1 QPixmap、QImage、QPictrue三种绘图工具之间的区别:
上一篇我们讲到QPixmap如何在窗口进行绘图,接下来本篇要讲的是QPixmap如何保存一张图片,即将已有图片再按自己方式保存。首先我们先提一下三种绘图工具的区别。
1)QPixmap:不能对图片修改,主要用于屏幕绘图,因为它在屏幕绘图时自己优化了,不同电脑优化程度不一样,与显卡等电脑元件有关。
2)QImage:可以对图片某个部位进行修改,可以在线程绘图(后面多线程时用到)。不能优化,所以和电脑(平台)无关。
3)QPictrue:实际上这个不是用于绘图,而是用于保存二进制图片,方便在不同电脑平台之间保存图片的状态完整性。
注意:QPixmap、QImage既可以用于绘图,又可以作绘图设备时保存图片。而QPicture只能用于作绘图设备时保存图片状态,保存前需要用到前两种方法绘图。即:

//QPixmap的绘图与保存
p.drawPixmap(0,0,400,300,QPixmap("C:/Users/Administrator/Desktop/MyQtCode/day04/05_QPixmap/face"));
pix.save("C:/Users/Administrator/Desktop/MyQtCode/day04/05_QPixmap/face11.png");
//QImage的绘图与保存
p.drawImage(0,0,QImage("C:/Users/Administrator/Desktop/MyQtCode/day04/06_QImage/face"));
image.save("C:/Users/Administrator/Desktop/MyQtCode/day04/06_QImage/face11.png");

2 保存图片与显示图片的区别:
在QPixmap某个区域保存一张图片的步骤:
创建绘图设备(QPixmap(x,y))->创建画家并指定绘图设备->开始绘图(p.drawPixmap)->保存图片。
例如代码:

    //注:上一篇是在窗口绘图所以需要重写绘图事件 这里创建一个QPixmap对象区域作为绘图设备 所以不需要重写绘图事件
    //保存一张图片的步骤:创建绘图设备(QPixmap)->创建画家并指定绘图设备->开始绘图(p.drawPixmap)->保存图片
    //创建一个QPixmap对象区域 作为绘图设备---所以保存图片时QPixmap理解为一个区域 显示时理解为一张图更加容易理解
    
    QPixmap pix(400,300);
    QPainter p(&pix);

    //对图片进行填充 画家和绘图设备都行
    p.fillRect(0,0,400,300,QBrush(Qt::white));
    //pix.fill(Qt::white);

    //开始进行绘图操作 --写路径时将Windows下的\改成/即可
p.drawPixmap(0,0,400,300,QPixmap("C:/Users/Administrator/Desktop/MyQtCode/day04/05_QPixmap/face"));
    pix.save("C:/Users/Administrator/Desktop/MyQtCode/day04/05_QPixmap/face11.jpg");

在窗口显示一张图片的步骤:
创建画家并指定绘图设备->开始绘图。
例如代码:

    QPainter p(this);
    p.drawPixmap(0,0,100,100,QPixmap("://butterfly.png"));

注意:
1)保存图片只比显示图片多了保存这一步。
2)显示图片在窗口,需要重写绘图事件。保存图片在QPixmap区域,不需要重写绘图事件。

总结这篇和上一篇:这篇QPixmap是用于保存图片,上一篇是在窗口显示图片。即QPixmap既可以绘图,也可以作绘图设备保存图片

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值