Qt wczytywanie obrazu ze stringu

0

Witam, chciałbym zapytać czy jest możliwość wczytania obrazu ze stringu lub innego ciągu. Czyli np. mam jakiś obraz i wczytuje go do jakiejś zmiennej a później tą zmienną wklejam do jakiegoś widgetu a on wyświetla ten tekst jako mój obraz. Czy coś takiego jest możliwe czy tylko obraz z pliku bezpośrednio ? Dziękuje za odpowiedzi.

0

Jak dla mnie możesz załadować obraz skąd chcesz do jakiejś tablicy, zdekodować to odpowiednio (rozdzielić na przykład na komponenty r,g,b) a potem wyrysować w widgecie chociażby za pomocą przeciążenia paintEvent.

0

Wolałbym jakieś inne rozwiązanie, ponieważ nie mam absolutnie żadnego pojęcia o jakimkolwiek używaniu grafiki, rysowaniu itd. Umiem tylko załadować obraz do widgetu przez przycisk "set Image" w Qt Creator ;d Czy jest jakiś inny sposób

0

Nie rozumiem problemu. Co to jest za string obrazu? Co przez to w ogóle rozumiesz? Skąd go dostajesz?

2

czy ty pytasz o dekodowanie base64 (obraz binarny zakodowany w tekście)?
Jeśli tak to:
http://doc.qt.io/qt-4.8/qbytearray.html#toBase64
http://doc.qt.io/qt-4.8/qbytearray.html#fromBase64

QByteArray data = QByteArray::fromBase64(stringBase64);
QImage image = QImage::fromData(data);
label->setPixmap(QPixmap::formImage(image));
0

Chodzi mi o takie coś:

QFile file( "image.jpg" );
    file.open( QIODevice::ReadOnly | QIODevice::Text );
    QTextStream ts( &file );
    QString string = ts.readAll();

    ui.label->loadimage( string );

żebym odczytał tekst z pliku do zmiennej a potem go załadował na ekran.

EDIT: Po wykonaniu takiego kodu:

    QFile image( "image.jpg" );
    image.open( QIODevice::ReadOnly | QIODevice::Text );
    QTextStream ts( &image );
    QString binary = ts.readAll();

    QByteArray data = QByteArray::fromBase64( QString( binary ).toLatin1() );
    QImage fimage = QImage::fromData(data);
    ui->IMAGE->setPixmap( QPixmap::fromImage(fimage) );

Obraz się nie ładuje :/

0

O to mi właśnie chodzi, tylko że zamiast filename chciałbym dać zmienną w której jest zawartość tego pliku, zależy mi na tym żeby to było ze zmiennej.

0

No to opisz problem tak by był on dla kogoś zrozumiały.

1

W takim razie wysil się troche i popatrz na metody klasy QImage (konkretnie przyjrzyj się wszystkim wersjom loadFromData())

0
x napisał(a):

W takim razie wysil się troche i popatrz na metody klasy QImage (konkretnie przyjrzyj się wszystkim wersjom loadFromData())

Dziękuje, o to mi chodziło :D

1 użytkowników online, w tym zalogowanych: 0, gości: 1