2015-01-08 1 views
-5

나는 내가 QLabel

에서 그것을 Qimage에 JPEG 이미지의 Base64로 문자열을 변환 및 표시해야 Qt는

로 시작하고 수 누군가이 일을하는 법을 가르쳐 주시겠습니까?

+3

나는 사람들이 아래 표시에 여기 영업 이익에 조금 가혹 생각 (const를 QByteArray & 데이터) QByteArray 및 QImage :: loadFromData와 함께 할 수 있습니다. 그 또는 그녀는 분명히 새로 입문되었으며 불필요한 Base64 JPEG가 질문에 추가 되어도 무엇을 요구했는지는 분명합니다. – TheDarkKnight

+0

나는 질문을 분명히 할 수 없어서 유감입니다. jpeg 그림의 base64 값을 QByteArray 변수에 할당하려고했습니다. 이 문자열은 20 만 자 이상이었습니다. 과제가 제대로 작동하지 않았습니다. 제안에 대해 Merlin069에 감사드립니다. – SAHLA

답변

5

물론 QByteArray과 QImage가 있습니다. QImage는 base64로 인코딩 된 데이터와 함께 사용할 수있는 loadFromData 메서드를 가지고 있습니다. 여기

QByteArray imageData = QByteArray::fromBase64("YourBase64EncodedString"); 
QImage img; 
if (img.loadFromData(imageData)) { 
    // show this label somewhere. 
    QLabel label; 
    label->setPixmap(QPixmap::fromImage(img)); 
} 

당신은 read and write images

더 완벽한 예는 내 github repository에서 찾을 수 있습니다 방법에 대한 자세한 정보를 찾을 수 있습니다. 나는 실수로 삭제 된 전자 메일에서 base64로 인코딩 된 이미지를 복원하기 위해 몇 년 전에이 응용 프로그램을 작성했습니다.

+2

첫 번째 코드 줄에 유효한 구문이 없습니다. OP가 Qt에 새로운 점을 고려하면 혼란을 일으킬 것입니다. – TheDarkKnight

+0

올바른 구문이 맞지 않습니다. 나는 이것을 의사 코드로 표시해야했다. –

+0

OP는 또한 QLabel에 이미지를 추가하는 방법을 묻습니다. 나는 질문이 끝나면 답을 썼다. – TheDarkKnight

1

당신은

QByteArray barray = QByteArray::fromBase64("base64 string"); 
    QImage image; 
    image.loadFromData(barray);