Russian Qt Forum

Qt => Мультимедиа => Тема начата: Torvald от Июнь 29, 2018, 10:55



Название: Как посчитать общий вес всех QImage в массиве?
Отправлено: Torvald от Июнь 29, 2018, 10:55
Не секрет, что QImage хранит свой массив пикселей в кэше отдельно от объекта. Таким образом, два одинаковых изображения могут занимать места как одно.
В общем, есть вектор изображений:
Код
C++ (Qt)
QVector<QImage> images;
Среди его элементов есть одинаковые изображения (с одним кэшем), например:
  • изображение 1
  • изображение 2
  • изображение 2
  • изображение 2
  • изображение 1
  • изображение 3
То есть шесть разных объектов, но по сути всего три изображения, то есть в кэше хранятся всего три картинки.
Вопрос: как посчитать реально занимаемый объем этого вектора? В мегабайтах.


Название: Re: Как посчитать общий вес всех QImage в массиве?
Отправлено: Igors от Июнь 29, 2018, 16:26
Напр использовать

const uchar * QImage::bits() const

Только обязательно константный. Ну и наверное не "кэш", а (шаред) "буфер"


Название: Re: Как посчитать общий вес всех QImage в массиве?
Отправлено: Torvald от Июнь 29, 2018, 16:33
Да, действительно, спасибо, попробую.


Название: Re: Как посчитать общий вес всех QImage в массиве?
Отправлено: Alex Custov от Июль 03, 2018, 16:56
См. QImage::cacheKey()