Russian Qt Forum
Сентябрь 30, 2024, 08:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPixmap в QByteArray  (Прочитано 7505 раз)
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.

Что я делаю не так?
Записан
Fat-Zer
Гость
« Ответ #1 : Декабрь 18, 2010, 15:41 »

Формат забыли указать... например:
Код:
image.save(&buffer, "PNG");
Записан
romanick
Гость
« Ответ #2 : Декабрь 18, 2010, 20:15 »

Спасибо. Помогло. Странно почему этот параметр не обязателен.
Записан
Fat-Zer
Гость
« Ответ #3 : Декабрь 19, 2010, 07:01 »

Потому что, если передавать файл, то он быдет автоматически угадываться по расширению.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 21.