这是一个简单的例子,将QPixmap对象保存为png或者jpg等格式的图片
函数原型:
使用指定的图像文件格式(format )和质量因数(quality )以给定的文件名(fileName)保存像素图到文件中。如果成功返回true;否则返回false。
质量因子必须在[0,100]或1的范围内。指定0来获得小的压缩文件,100用于获得大的未压缩文件,-1用于使用默认设置
bool QPixmap::save(const QString &fileName, const char *format = Q_NULLPTR, int quality = -1) const
QPixmap m_pix;
m_pix = ******;
m_pix.save("aaa.jpg",Q_NULLPTR,100);
这是一个简单的例子,将QPixmap对象保存为png或者jpg等格式的图片函数原型:使用指定的图像文件格式(format )和质量因数(quality )以给定的文件名(fileName)保存像素图到文件中。如果成功返回true;否则返回false。质量因子必须在[0,100]或1的范围内。指定0来获得小的压缩文件,100用于获得大的未压缩文件,-1用于使用默认设置bool QPixmap::save(const QString &fileName, const char *format =
QImage* image = new QImage;
image->load("绝对路径");
ui->label->setPixmap(QPixmap::fromImage(*image));
image->save("绝对路径");
路径中的分隔符 " \ " 用 " \ " 或者 " / " 代替
QImage 是为 I/O 以及直接像素访问和操作而设计和优化的。
QPixmap 是为在屏幕上显示图像而设计和优化的。
QBitmap是一个继承QPixmap的便利类,保证深度为1。如果QPixmap对象确实是位图,isQBitmap()函数返回true,否则返回false。
QPicture 类是一个绘制设备,用于记录和重放 QPainter 命令。
QPixmap 对象可以通过值传递,因为 QPixmap 类使用隐式数据共享。QPixmap
28黑马QT笔记之QPixmap保存图片
1 QPixmap、QImage、QPictrue三种绘图工具之间的区别:
上一篇我们讲到QPixmap如何在窗口进行绘图,接下来本篇要讲的是QPixmap如何保存一张图片,即将已有图片再按自己方式保存。首先我们先提一下三种绘图工具的区别。
1)QPixmap:不能对图片修改,主要用于屏幕绘图,因为它在屏幕绘图时自己优化了,不同电脑优化程度不一样,与显卡等...
可以使用QPixmap.grabWidget()方法将QGraphicsView保存为图片。具体步骤如下:
1. 创建一个QPixmap对象,大小与QGraphicsView相同。
2. 调用QPixmap.grabWidget()方法,将QGraphicsView作为参数传入。
3. 将QPixmap保存为图片文件,可以使用QPixmap.save()方法。
示例代码如下:
# 创建QPixmap对象
pixmap = QPixmap(view.size())
# 将QGraphicsView保存为图片
pixmap = pixmap.grabWidget(view)
# 保存为图片文件
pixmap.save("view.png")
其中,view为QGraphicsView对象。保存的图片文件名为view.png。
### 回答2:
QGraphicsView是Qt图形库中用于显示图形场景的控件,而保存为图片是将当前控件内容保存为图片格式的功能。在使用QGraphicsView控件的过程中,可能需要将其显示的图形保存为图片,例如在生成报告时需要将图形保存为图片格式进行展示。
QGraphicsView的保存为图片可以通过QPixmap::grabWidget()函数来实现。该函数需要传入一个QWidget类型的指针,将控件指针作为参数传入即可。该函数将当前QWidget控件的内容转换为QPixmap对象并返回。
然后可以使用QPixmap对象的save()函数将该对象保存为图片。需要注意的是,保存的图片格式需要在保存时指定,可以指定为png、jpg等格式。
下面是一个保存QGraphicsView为图片的示例代码:
```c++
QPixmap pixMap = QPixmap::grabWidget(ui->graphicsView);
QString fileName = "test.png"; //保存的文件名及格式
pixMap.save(fileName);
在实际使用时,可能需要手动设置保存的图片大小及像素密度等参数。可以使用QPixmap对象的scaled()函数进行缩放或裁剪,再进行保存。例如:
```c++
QPixmap pixMap = QPixmap::grabWidget(ui->graphicsView);
QPixmap scaledPixMap = pixMap.scaled(QSize(800, 600), Qt::KeepAspectRatio, Qt::SmoothTransformation);
QString fileName = "test.png"; //保存的文件名及格式
scaledPixMap.save(fileName, "PNG", 100); //图片质量为100%
总之,QGraphicsView保存为图片功能较为简单,在使用过程中只需调用QPixmap::grabWidget()函数将控件内容转换为QPixmap对象,并使用QPixmap对象的save()函数将其保存为图片即可。同时可以手动设置保存的图片大小、像素密度及图片格式等参数,以便满足实际需要。
### 回答3:
QGraphicsView作为Qt中较为重要的绘图控件,它提供了许多应用于图形和场景的功能。在某些应用程序中,可能需要将场景或视图保存为图片,以便于共享和传递,或者以备日后查看和编辑。那么如何将QGraphicsView保存为图片呢?
一、使用QPixmap
1.1 将QGraphicsView转成QPixmap
将QGraphicsView转成QPixmap是一种简单的保存方式。具体实现方法如下:
```python
pixmap = QPixmap(view.viewport().rect().size())
view.render(pixmap)
pixmap.save('image.png', 'png')
其中,viewport()方法得到视图应用的绘制区域,由viewport的大小构造QPixmap,将视图渲染到QPixmap上,最后保存。
1.2 调整分辨率
对于想增加输出图片分辨率的用户,可以使用以下代码:
```python
scale = 2
pixmap = QPixmap(scale * view.viewport().size())
pixmap.fill(Qt.white)
painter = QPainter(pixmap)
painter.setViewport(view.viewport().rect())
painter.setWindow(view.rect())
view.render(painter)
painter.end()
pixmap.save('image.png', 'png')
对于该代码,我们新增了一个变量scale,将视图的大小乘以scale倍数,同时使用窗口作为绘制第一步。这里我们将其设置为QView.rect()。
1.3 将QGraphicsPixmapItem添加到场景
另一种方法是将QGraphicsView的内容复制到场景中,最后将场景保存为图片。具体实现过程如下:
```python
pixmap = QPixmap(view.viewport().size())
pixmap.fill(Qt.transparent)
painter = QPainter(pixmap)
scene = QGraphicsScene(view.viewport())
view.rendezvous(scene)
scene.render(painter)
painter.end()
pixmap.save('image.png', 'png')
二、使用QImage
要将QGraphicsView保存为QImage,可以使用以下代码:
```python
image = QImage(view.viewport().size(), QImage.Format_RGB32)
painter = QPainter(image)
view.render(painter)
painter.end()
image.save('image.png', 'png')
值得注意的是,由于QImage存储图像的方式和QPixmap不同,因此需要将颜色空间设置为RGB32。
三、保存为pdf
如果想保存场景为pdf文件,可以使用以下代码:
```python
printer = QPrinter(QPrinter.HighResolution)
painter = QPainter()
printer.setOutputFileName('output.pdf')
painter.begin(printer)
painter.setViewport(view.viewport().rect())
painter.setWindow(view.rect())
view.render(painter)
painter.end()
尽管以上三种方法都可以将QGraphicsView保存为图片,但他们在特定的应用场景下各自有其优势和短板。通过使用这些方法,您可以根据实际应用需求来选择最合适的保存方式。