И надо знать, что QPixmap хранится на стороне сервера, а QImage на стороне клиента.
Я читал эту фразу но не совсем понял: кто здесь "сервер"? Видеопамять? GPU? Это возможно но "если железо позволяет" - и всегда можно создать такое кол-во QPixmap что расход по ресурсам будет превышен.
Да ПО планируется использовать на маломощных рабочих станциях, где ценится каждый мегабайт.
Пока что в мыслях примерно следующая концепция: загружать картинку в память в виде raw data, потом в PaintEvent выводить требуемую часть изображения (но как это все провернуть - не знаю). При максимальном разрешении в 1920х1080 (а вероятно, будет даже использоваться разрешение 1024х768) мы получим расход памяти ~8Мб, что уже лучше. Но тут возникает вопрос - не нагрузим ли мы процессор такими преобразованиями в каждом PaintEvent?
А вообще, не хотелось бы изобретать велосипедов - может быть есть какой-нибудь способ проще?
Понятно что лучше "быть богатым и здоровым", но так не всегда выходит
Здесь важно не только (в может и не столько) максимальный размер имеджа, но и число имеджей которые должны быть одновременно загружены. Очень просто но полезно сразу завести ограничитель в preferences. напр
MAX_IMAGE_SIZE = 1024
Если железо совсем слабенькое - ставите поменьше и сразу scale больших имеджей при загрузке. Худо-бедно но работать будет. А увлекаясь оптимизацией Вы можете оказаться в неудобном положении когда в один прекрасный день у заказчика появится новое железо.
Увеличивать только нужную часть изображения в paintEvent (как показал
GreatSnake) придется - но это часто неизбежно и на хорошем железе - напр. когда нужны очень большие увеличения