Обработка очень больших изображений в Qt - PullRequest
3 голосов
/ 25 января 2011

Я не могу заставить Qt работать с изображениями за пределами 10 000X10 000.Я имею дело с огромными спутниковыми изображениями размером около 2 ГБ каждое.Я подумал об использовании отображения памяти, но изображение все еще занимает место в памяти.

QFile file("c://qt//a.ras");
file.open(QIODevice::ReadOnly);
qint64 size = file.size();
uchar *img=file.map(0,size);
QImage I(img,w,h,QImage::Format_ARGB32);

Может кто-нибудь сказать мне более эффективный способ работы с большими изображениями в Qt?

Ответы [ 3 ]

8 голосов
/ 25 января 2011

Qgraphicsview и набор плиток с изображениями, представление обрабатывает все прокрутки и мировые координаты за вас.
Затем вам просто нужно заранее нарезать изображения на плитки или вытянутьраздел данных изображения на лету

5 голосов
/ 25 января 2011

Можете ли вы использовать какую-то стратегию листов, чтобы загружать и манипулировать изображением по частям, а не все сразу?

0 голосов
/ 26 января 2011

Я предполагаю, что вы используете 32-битную ОС и у вас заканчивается адресное пространство. Самым простым решением может быть использование 64-разрядной ОС (например, Windows 7 x64) и сборка приложения для 64-разрядной версии. Какая у вас целевая платформа (Windows, Mac OS X, Linux и т. Д.)?

Это может помочь.

...