mrgloom 242 Жалоба Опубликовано October 26, 2011 есть какие то сторонние библиотеки позволяющие записывать большие файлы без загрузки их полностью в память? т.е. чтобы запись происходила кусками. позволяют ли это стандартные библиотеки типа libtiff,libjasper и т.д.? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано October 26, 2011 Ммм, а что значит "записывать без загрузки в память"? То есть изображение ещё не сформировано? В каком виде оно изначально представлено? Вообще, bmp - несжатое изображение, поэтому записывать в файл его можно кусками, тут проблем не будет. С другими форматами надо сначала получить несжатое изображение, после идёт стадия компрессии и запись на диск. Нужна именно потоковая или блочная компрессия? Потому что сжатое изображение даже большого разрешения будет занимать не так уж и много памяти. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано October 26, 2011 Ммм, а что значит "записывать без загрузки в память"? это значит, что если изображение скажем 1Гб(оно будет составлено из N изображений, часть которых в памяти и часть которых лежит на диске) я не хочу выделять под него отдельно 1Гб памяти, а хочу чтобы оно записывалось кусками на диск скажем по 100 Мб. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Nuzhny 243 Жалоба Опубликовано October 26, 2011 bmp можно так записывать - там заголовок 54 байта (структуры BITMAPFILEHEADER и BITMAPINFOHEADER), а дальше просто сырые данные. Про сжатие кусками я не в курсе. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано October 27, 2011 ну да bmp самый простой случай, ну tif тоже можно писать без компрессии. тогда вопрос только для в JPEG. но там же вроде берутся блоки 8х8 и считаются какие то коэффициенты, т.е. можно обрабатывать маленькими порциями. но изначально вопрос то даже стоял как это сделать с меньшими усилиями, покопаться и исправить в тех же самых либах типа libtiff,libjasper ? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах