2011-08-02 6 views

答えて

4

これは、いつかpngとbase64をテストするために書いた簡単なプログラムです。 標準入力からbase64でエンコードされたpngを受け取り、それを表示し、指定されたパスに保存します(何も指定されていなければoutput.png)。 これは、base64文字列がpngでない場合には動作しません。

#include <QtCore> 
#include <QApplication> 

#include <QImage> 
#include <QByteArray> 
#include <QTextStream> 
#include <QDebug> 
#include <QLabel> 

int main(int argc, char *argv[]) { 
    QString filename = "output.png"; 
    if (argc > 1) { 
     filename = argv[1]; 
    } 
    QApplication a(argc, argv); 
    QTextStream stream(stdin); 
    qDebug() << "reading"; 
    //stream.readAll(); 
    qDebug() << "read complete"; 
    QByteArray base64Data = stream.readAll().toAscii(); 
    QImage image; 
    qDebug() << base64Data; 
    image.loadFromData(QByteArray::fromBase64(base64Data), "PNG"); 
    QLabel label(0); 
    label.setPixmap(QPixmap::fromImage(image)); 
    label.show(); 
    qDebug() << "writing"; 
    image.save(filename, "PNG"); 
    qDebug() << "write complete"; 
    return a.exec(); 
} 
1

あなたはよくある質問を読んで、特定の問題のために頼むことができます...

プロセスのようなものです: - >QByteArray - >QImage - にBase64(QStringの)もちろん>save to file

、あなたがする必要がありますプラグインを考慮し、pngを書き込むための容量をエクスポートし、base64ファイルがイメージをどのように表しているかを知ってください...そしておそらく逆のプロセスを行うことができます。

+1

http://doc.qt.nokia.com/latest/qpixmap.html#loadFromData-3もご覧ください。 – Bill

関連する問題