1, QPixmap主要是用于绘图,针对屏幕显示而最佳化设计,打印大师主要是为图像I/O,图片访问和像素修改而设计的
2, QPixmap依赖于所在的平台的绘图引擎,故例如反锯齿等一些效果在不同的平台上可能会有不同的显示效果,打印大师使用Qt自身的绘图引擎,可在不同平台上具有相同的显示效果
3,目前的Qt会把QPixmap都存储在图形内存中,打印大师是存储在客户端的,是独立于硬件的。在X11, Mac以及塞班平台上,QPixmap是存储在服务器端,而打印大师则是存储在客户端,在Windows平台上,QPixmap和打印大师都是存储在客户端,并不使用任何的GDI资源。
4,由于打印大师是独立于硬件的,也是一种QPaintDevice,因此我们可以在另一个线程中对其进行绘制,而不需要在GUI线程中处理,使用这一方式可以很大幅度提高UI响应速度。
5,打印大师可通过setPixpel()和像素()等方法直接存取指定的像素,Qt的文档中有如下例程:
打印大师p_w_picpath(3, 3,打印大师::Format_RGB32);
QRgb价值;
value=https://www.yisu.com/zixun/qRgb(189年,149年,39);
p_w_picpath。setPixel(1, - 1,价值);
value=https://www.yisu.com/zixun/qRgb(122年,163年,39);
p_w_picpath。setPixel(0, 1,价值);
p_w_picpath。setPixel(1 0值);
value=https://www.yisu.com/zixun/qRgb (237、187、51);
p_w_picpath。setPixel(2, 1,价值);
·QPicture
·QPicture则是一个绘图装置,用于记录和重播Qpainter的绘图指令。
·使用开始()方法在QPicture上进行绘图,使用结束()结束绘图,使用保存()保存至档案
QPicture图片;
Qpainter画家;
painter.begin(和图片),
画家。绘制矩形(10年,20年,100年,50);
painter.end ();
picture.save (“draw_record.pic”);
需重播绘图指令的话,新建一个QPicture对象,使用load()重新载入保存的档案,然后再在指定的绘图设备QDevice上绘制QPicture:
QPicture图片;
picture.load (“draw_record.pic”);
QPainter画家;
painter.begin(这);
画家。drawPicture(0, 0,图片),
painter.end ();