Qt5 图像打印

图像打印代码如下:

void ImageProcessor::ShowPrintImage()

{

    QPrinter printer;

    QPrintDialog printDialog(&printer,this);

    if(printDialog.exec())

    {

        QPainter painter(&printer);

        QRect rect=painter.viewport();

        QSize size=img.size();

        size.scale(rect.size(),Qt::KeepAspectRatio);

 

        painter.setViewport(rect.x(),rect.y(),size.width(),size.height());

        painter.setWindow(img.rect());

        painter.drawImage(0,0,img);

    }

}

 



解释:

1)、打印图像实际上是在一个QPaintDevice中画图,与平常在QWidgetQPixmapQImage中画图相同,都是创建一个QPainter对象进行画图,只是打印使用的是QPrinterQPrinte本质上也会一个绘图设备QPaintDevice

2)、Qpainter painterQprinter):创建一个QPainter对象,并指定绘图设备为一个QPrinter对象。

3)、QRectrect=painter.viewport():获得QPainter对象的视口矩形区域;

4)、Sizesize=img.size():获得图像大小

5)、size.scale(rect.size(),Qt::KeepAspectRatio)、painter.setViewport(rect.x(),rect.y(),size.width(),size.height())按照图形的比例大小重新设置视口矩形区域;

6)、painter.setWindow(img.rect())设置QPainter窗口大小为图像的大小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值