У меня есть следующий пользовательский интерфейс, где показана сонограмма (Freq + время звукового представления). Таким образом, изображение откуда-то не загружается, оно рисуется QPainter
при чтении файла WAV
.
Моя текущая реализация представляет собой один огромный QImage
объект, где рисуется изображение. И на paintEvent()
я рисую часть большого QImage
на виджете:
QPainter painter(this);
// (int, int, QImage*, int, int)
painter.drawImage(0, 0, *m_sonogram, 0, m_offset);
Но, как я знаю, QPixmap
оптимизирован для отображения растровых изображений на экране, поэтому я должен преобразовать QImage
в QPixmap
после завершения рисования сонограммы?
Кроме того, стоит ли сохранять большое изображение в виде некоего связанного списка отдельных QPixmap
объектов меньшего размера и сделать paintEvent()
умнее для работы со списком более мелких объектов, чтобы избежать процедур автоматического вырезания в Qt и и так далее?
Когда мой QImage достаточно велик, каждый paintEvent()
потребляет много CPU
.
Приветствуются всевозможные советы:)