crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> DXTC декомпрессия
sidsukana
  опции профиля:
сообщение 23.3.2012, 9:55
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 158
Регистрация: 23.12.2010
Из: Челябинск
Пользователь №: 2296

Спасибо сказали: 10 раз(а)




Репутация:   2  


Понадобилось заняться графикой.
Есть файл с изображением законсервированный в DXT1/3.
Использую squish библиотеку для декомпрессии изображения, но наверное делаю что-то не так. Никак не получается вывести картинку, вместо нее набор цветопикселей :)

Функция для получения QPixmap из данных

QPixmap Texture::getImage()
{
    int mipmax = m_header.hasMips ? 16 : 1;

    QDataStream stream(m_buffer);
    stream.setByteOrder(QDataStream::LittleEndian);

    QVector<quint8> data;
    quint8 d = 0;

    for (quint8 i = 0; i < mipmax; i++)
    {
        stream.skipRawData(m_header.offsets[i]);
        for (quint32 j = 0; j < m_header.lengths[i]; j++)
        {
            stream >> d;
            data << d;
        }
    }
    
    QVector<quint8> v;
    v.resize(m_header.width * m_header.height * 16 * 4);
    squish::DecompressImage(&v[0], m_header.width, m_header.height, data.data(), m_header.encoding);

    QImage img(v.data(), m_header.width, m_header.height, QImage::Format::Format_ARGB32);

    return QPixmap::fromImage(img);
}


Изображение 256х256
С графикой сталкиваюсь впервые, особенно с форматом который не поддерживает Qt. В общем вот такая картинка выходит



Помогите разобраться, может неправильно загружаю в классы Qt ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 23.3.2012, 10:26
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


красиво, кстати ))

а ту же самую картинку в нормальном виде можно увидеть ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.12.2024, 11:13