由于您的图片是以不同的列储存,您需要像
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))。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)