• 4260阅读
  • 0回复

请问在linux系统下绘图时,高质量效果怎么无效? [复制链接]

上一主题 下一主题
离线booxiong
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-07
直接上代码:在WINDOWS上可以实现反走样,为什么在LINUX下不行,可是我看DEMON中窗口上绘制也可以反走样,唯独我输出到图片中为何不行!
#include "stdafx.h"
#include <QCoreApplication.h>
#include <QApplication.h>
#include <QPixmap.h>
#include <QPainter.h>
#include <iostream>
#include "qtextcodec.h "
#include "qobject.h"
using namespace std;

#ifdef _DEBUG
#pragma comment(lib,"QtCored4.lib")
#pragma comment(lib,"QtGuid4.lib")
#else
#pragma comment(lib,"QtCore4.lib")
#pragma comment(lib,"QtGui4.lib")
#endif

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QPainter qPaint;
    QPixmap *qPixmap = new QPixmap(700,500);
    qPixmap->fill(Qt::green);
    qPaint.begin(qPixmap);
    qPaint.setRenderHint(QPainter::Antialiasing, true);
    QPen pen(QColor(255,0,0),1);
    qPaint.setPen(pen);
    //qPaint.drawLine(0,150,500,160);
    QString string = "我是中国人";
    QTextCodec* gbk_codec = QTextCodec::codecForName("system");
    QString gbk_string = gbk_codec->toUnicode(string.toLatin1());
    
    QFont font;
    font.setFamily("宋体");
    font.setPixelSize(100);
    //font.setUnderline(true);
    //font.setStrikeOut(true);
    QFontMetricsF fontMetrics(font);
    QRectF rect = fontMetrics.boundingRect(QString("我是中国人"));
    qPaint.setFont(font);
    qPaint.drawText(0,150 - fontMetrics.descent(),gbk_string);
    qPaint.drawRect(0,50,500,100);

    qPaint.drawText(0,275,gbk_string);
    qPaint.drawRect(0,175,500,100);

    gbk_string = gbk_codec->toUnicode("我");
    qPaint.drawText(0,400,gbk_string);
    gbk_string = gbk_codec->toUnicode("是");
    qPaint.drawText(100,400,gbk_string);
    gbk_string = gbk_codec->toUnicode("中");
    qPaint.drawText(200,400,gbk_string);
    gbk_string = gbk_codec->toUnicode("国");
    qPaint.drawText(300,400,gbk_string);
    gbk_string = gbk_codec->toUnicode("人");
    qPaint.drawText(400,400,gbk_string);
    qPaint.drawRect(0,300,500,100);

    /*QFont font("宋体", 35, 50, false);
    font = QFont(font, qPaint.device());
    QFontMetricsF fontMetrics(font);
    QRectF rect = fontMetrics.boundingRect(QString("我是中国人"));
    qPaint.setFont(font);
    qPaint.drawText(QPointF(0, 150),
        QString("我是中国人"));*/

    qPaint.end();
    qPixmap->save("C:/a.jpg","JPEG");
    qPixmap->save("C:/a.png","PNG");
    qPixmap->save("C:/a.gif","GIF");
    qPixmap->save("C:/a.bmp","BMP");
    if(qPixmap)
    {
        delete qPixmap;
        qPixmap = NULL;
    }
    return a.exec();
    return 0;
}
快速回复
限100 字节
 
上一个 下一个