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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: еще баг Qt?  (Прочитано 4868 раз)
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« : Октябрь 31, 2009, 11:42 »

Код:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include <QImageWriter>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //QImage img("1.jpg");
    QImageWriter writer("2.jpg");
    qDebug() << "1: " << writer.format();
    //writer.write(img);
    return a.exec();
}
writer.format(); возвращает пустую строку... Скорее всего он рабтает только в паре с setFormat, что в корне неверно... (к примеру мне надо в зависимости от пути который выбрал юзер и как следствие формат, сохранять картинку с разными параметрами)
Проверил под мак/виндовз - строка пустая. Как глядеть какие баги есть в багтрекере qt?)
Записан
cya-st
Гость
« Ответ #1 : Октябрь 31, 2009, 12:07 »

А какая версия QT? Может в новой версии испралено.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Октябрь 31, 2009, 12:56 »

4.5.3, вот я и спрашиваю - где глянуть... мб в 4.6 норм
Записан
SABROG
Гость
« Ответ #3 : Октябрь 31, 2009, 13:07 »

Как глядеть какие баги есть в багтрекере qt?)

По QImageWriter там находится один лишь багрепорт, да и тот о другом. А искать можно через создание нового фильтра (просто его сохранять не обязательно) и вводя в поле Text Search->Query: нужные слова. Проще конечно через Quick Search в правом верхнем углу.
Записан
zenden
Гость
« Ответ #4 : Октябрь 31, 2009, 15:41 »

Код
C++ (Qt)
QImageWriter::QImageWriter(const QString &fileName, const QByteArray &format)
   : d(new QImageWriterPrivate(this))
{
   QFile *file = new QFile(fileName);
   d->device = file;
   d->deleteDevice = true;
   d->format = format;
}
 
 
/*!
   Sets the format QImageWriter will use when writing images, to \a
   format. \a format is a case insensitive text string. Example:
 
   \snippet doc/src/snippets/code/src_gui_image_qimagewriter.cpp 0
 
   You can call supportedImageFormats() for the full list of formats
   QImageWriter supports.
 
   \sa format()
*/

void QImageWriter::setFormat(const QByteArray &format)
{
   d->format = format;
}
 
/*!
   Returns the format QImageWriter uses for writing images.
 
   \sa setFormat()
*/

QByteArray QImageWriter::format() const
{
   return d->format;
}

Поле d->format заполняется при вызове метода save()

« Последнее редактирование: Октябрь 31, 2009, 16:01 от zenden » Записан
ufna
Гость
« Ответ #5 : Октябрь 31, 2009, 22:07 »

вообще, это кажется логичным. Т.к. до того, как врайтер не начнет записывать, ему знать формат необязательно (т.е. ему до его действий нужно уже обратиться к файлу)
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #6 : Октябрь 31, 2009, 22:24 »

а опции записи мне как определять не зная формат изображения?
Записан
ufna
Гость
« Ответ #7 : Октябрь 31, 2009, 22:28 »

а QImageReader на что? По-моему, это есть специфика разделения, а не баг. Ридер отлично читает формат, не загружая изображения. Райтер же возвращает тот формат, который он использовал для записи.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #8 : Октябрь 31, 2009, 22:34 »

в доке сказано, что если в конструкторе не указан параметр формат, он берется из расширения. Из этого следует что в момент когда врайтер создан, то формат известен.
Совсем тупая задача - есть имадж, его можно сохранить как жпег или как другой формат (.blp). Оба поддерживают сжатие, но вот я скорее всего если и буду сохранять как жпег, то со 100% качеством для последующей работы, а .blp я буду сохранять с 30% сжатием для использования. Мне приходится самому проверять расширение, чтобы выставить параметры сжатия. Кроме того, для .blp есть еще штук 8 разных параметров. Почему я должен делать ту работу, к-ая, как следует из документации, выполняется в конструкторе?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #9 : Ноябрь 05, 2009, 14:25 »

так что делать с таким поведением? запостить в трекер или забить и считать что "так надо"?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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