如何在Qt中输出这个24位图像

如何在Qt中输出这个24位图像,第1张

您可以创建 QImage直接从数据块,而不复制每个像素

由于您的图片是以不同的列储存,您需要像

QImage image = new QImage(width,height,QImage :: RGB888)

for(int h = 0h<heighth ++){

// scanLine返回ptr该行的数据的开始

memcpy(image.scanLine(h),chars [h],width * 3)

}

如果您使用RGB32,则需要手动设置每个像素的Alpha通道到0xff - 只是memset()将整个数据0xff开头

qt将textbrowser控件上选择的内容导出到图像的方法为:

1、调用QPixmap的静态成员函数QPixmapgrabWidget(QWidget*widget,constQRect&rectangle)。

2、调用QWidget的函数voidrender(QPaintDevice*target,constQPoint&targetOffset=QPoint(),constQRegion&sourceRegion=QRegion(),RenderFlagsrenderFlags=RenderFlags(DrawWindowBackground|DrawChildren))和voidrender(QPainter*painter,constQPoint&targetOffset=QPoint(),constQRegion&sourceRegion=QRegion(),RenderFlagsrenderFlags=RenderFlags(DrawWindowBackground|DrawChildren))。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12070758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存