QPainter的防锯齿,针对不同情况防锯齿,下面做了一个实验:
1、图形防锯齿。
未设置之前
打开反走样设置能够消除圆的锯齿
p.setRenderHints(QPainter::Antialiasing);
2、图片存在锯齿
未设置之前
在打开反走样同时,对图片进行裁剪,并裁剪时打开防锯齿,能够消除锯齿。
p.setRenderHints(QPainter::Antialiasing);
p.drawPixmap(QRect(-41,-7,83,34),pix.scaled(83,34,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
3、对图片进行rotate旋转时存在锯齿。
未设置之前,此时有设置
p.setRenderHints(QPainter::Antialiasing);
p.drawPixmap(QRect(-41,-7,83,34),pix.scaled(83,34,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
但是rotate后依然存在锯齿。
打开反走样的同时打开QPainter::SmoothPixmapTransform,并且图片裁剪设置防锯齿,能够消除锯齿。
p.setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);
p.drawPixmap(QRect(-41,-7,83,34),pix.scaled(83,34,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));