Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Crazy Sage от Декабрь 01, 2012, 11:40



Название: Реальный размер QPixmap'а в памяти
Отправлено: Crazy Sage от Декабрь 01, 2012, 11:40
Как можно узнать реальный размер QPixmap'а? sizeof(QPixmap) дает мне всегда 12 байт.
Ну или во сколько раз примерно QPixmap будет больше, чем jpeg из которого он разворачивается?
А то программа отжирает в памяти какие-то кошмарные объемы памяти как раз при открытии изображений.


Название: Re: Реальный размер QPixmap'а в памяти
Отправлено: GreatSnake от Декабрь 01, 2012, 11:53
1. Пиксмап хранится на стороне графической системы!
2. Делать sizeof( любой Qt класс ) глупо ибо qt-ишники используют PIMPL (http://habrahabr.ru/post/76248/).


Название: Re: Реальный размер QPixmap'а в памяти
Отправлено: Crazy Sage от Декабрь 01, 2012, 12:34
1. Пиксмап хранится на стороне графической системы!
2. Делать sizeof( любой Qt класс ) глупо ибо qt-ишники используют PIMPL (http://habrahabr.ru/post/76248/).

1. Можешь подробнее объяснить, что это значит в случае с Windows? Просто у меня проект при открытии jpeg'ов на полтора мегабайта дискового места отжирает шестьдесят мегабайт памяти, а в нормальном режиме джпегов гораздо больше, вот я и пытаюсь понять, это с ними связано или искать где-то еще трату памяти.

2. это я уже понял, что бесполезно, теперь буду знать почему, спасибо)


Название: Re: Реальный размер QPixmap'а в памяти
Отправлено: V1KT0P от Декабрь 01, 2012, 13:50
Просто у меня проект при открытии jpeg'ов на полтора мегабайта дискового места отжирает шестьдесят мегабайт памяти, а в нормальном режиме джпегов гораздо больше, вот я и пытаюсь понять, это с ними связано или искать где-то еще трату памяти.
JPEG это формат сжатия с потерями, естественно в сжатом виде он будет в разы меньше занимать памяти. А вот для отрисовки на экране будет распаковываться в несжатый массив.
Вот взял первый попавшийся jpeg: 328КБ 460х5680 в памяти он займет 460х5680х3 = 7654КБ в 23 раза больше.