Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Авварон от Апрель 01, 2010, 15:45



Название: qjpeghandler
Отправлено: Авварон от Апрель 01, 2010, 15:45
во время написания 1го имадж плагина выяснилось, что жпег хэндлер неявно преобразует АРГБ изображение в РГБ:
Код:
        switch (image.format()) {
        case QImage::Format_Mono:
        case QImage::Format_MonoLSB:
        case QImage::Format_Indexed8:
            gray = true;
            for (int i = image.colorCount(); gray && i--;) {
                gray = gray & (qRed(cmap[i]) == qGreen(cmap[i]) &&
                               qRed(cmap[i]) == qBlue(cmap[i]));
            }
            cinfo.input_components = gray ? 1 : 3;
            cinfo.in_color_space = gray ? JCS_GRAYSCALE : JCS_RGB;
            break;
        default:
            cinfo.input_components = 3;
            cinfo.in_color_space = JCS_RGB;
        }
мне же было необходимо
Код:
            cinfo.input_components = 4;
            cinfo.in_color_space = JCS_UNKNOWN;
и при этом сохранять 4 компоненты цвета. Пофиксил это добавлением в свитч проверки на то что имадж в формате ARGB и соотвественно поправил запись. Кто прав - qjpeghandler или я ?


Название: Re: qjpeghandler
Отправлено: crackedmind от Апрель 02, 2010, 01:28
Вообще-то, Jpeg не поддерживает alpha-канал.


Название: Re: qjpeghandler
Отправлено: Авварон от Апрель 03, 2010, 13:23
ну гугл говорит тоже самое... Придется написать свое сохранение этого псевдожпега...


Название: Re: qjpeghandler
Отправлено: ufna от Апрель 03, 2010, 20:17
а зачем тогда псевдожпег? чем пнг не угодил?


Название: Re: qjpeghandler
Отправлено: Авварон от Апрель 04, 2010, 09:24
затем что формат содержит псевдожпег(и)+свой хедер
в описании оного ничего про кривость жпега не сказано...