2011-08-02 5 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
당신은 FAQ를 읽고 특정 문제를 요청할 수

...

프로세스가 같은 것입니다 : Base64로 (QString) ->QByteArray ->QImage - 물론>save to file

을 수행해야 png를 작성하고 기본 64 파일이 이미지를 나타내는 방법을 알고 플러그인 및 내보내기 기능을 고려하십시오 ... 그리고 아마도 역 프로세스를 수행 할 수 있어야합니다.

+1

http://doc.qt.nokia.com/latest/qpixmap.html#loadFromData-3도 참조하십시오. – Bill

관련 문제