Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: romanick от Декабрь 18, 2010, 15:20



Название: QPixmap в QByteArray
Отправлено: romanick от Декабрь 18, 2010, 15:20
Всем привет.
Вроде задача простая, всё делаю по логике, но почему-то не работает.
Не получается скопировать изображение из QPixmap в QByteArray.
Код:
    // открываем диалог загрузки картинки
    QString fileName = QFileDialog::getOpenFileName(this, tr("Select image file"), "",
                                        tr("Images (*.jpg *.png *.bmp *.gif)"));
    // загружаем картинку
    QPixmap img;
    if (!img.load(fileName)){
        QMessageBox::critical(this, tr("error"), tr("Can't load image - ")+fileName);
        return;
    }
     qDebug() << img.size(); // здесь выводится QSize(2592, 3872) - всё ок
    QByteArray foto;
    QBuffer buffer(&foto);
    buffer.open(QIODevice::WriteOnly);
    img.save(&buffer);
    qDebug() << foto.size(); // а вот здесь почему-то 0.

Что я делаю не так?


Название: Re: QPixmap в QByteArray
Отправлено: Fat-Zer от Декабрь 18, 2010, 15:41
Формат забыли указать... например:
Код:
image.save(&buffer, "PNG");


Название: Re: QPixmap в QByteArray
Отправлено: romanick от Декабрь 18, 2010, 20:15
Спасибо. Помогло. Странно почему этот параметр не обязателен.


Название: Re: QPixmap в QByteArray
Отправлено: Fat-Zer от Декабрь 19, 2010, 07:01
Потому что, если передавать файл, то он быдет автоматически угадываться по расширению.