Файловый API-интерфейс для растровых изображений [закрыт]

0

Я хочу писать измененные сектора по объему в растровом изображении. Я не думаю, что это полезно использовать в битовой карте памяти, потому что громкость может быть чрезвычайно большой, и большой объем оперативной памяти будет постоянно занят. Я думаю, что файловое растровое изображение (битмап в файле на диске) будет оптимальным. Снижение производительности будет значительно смягчено менеджером кэшей Windows. В Windows есть много классов для работы с битовыми картами памяти (бит-массив), но я не могу найти готовые к использованию реализации файловых растровых изображений. Например, мне нужен void, который может установить некоторые бит (от n до k) в этом файле. Может писать, но я предпочитаю использовать готовый lib. Вы знаете некоторые подпрограммы, apis или libs для этого? Я принимаю c или c++, режим пользователя или ядро.

  • 0
    Насколько большой вы ожидаете, что ваш растровое изображение будет?
  • 0
    @Yexo. Насколько большой может быть пользовательский объем? Максимальный размер тома для кластеров ntfs 2 ^ 32. Так может иметь до 2 ^ 32 бит в битовой карте
Показать ещё 3 комментария
Теги:

1 ответ

2
Лучший ответ

EDIT: Теперь, когда вы сказали, что размер вашего растрового изображения составляет 2 ^ 32 бит, просто используйте нормальное распределение. С 64-битными процессами выделение GB не является проблемой.

Во-первых, я предполагаю, что вы используете 64 бит. Если нет, переключитесь, так как это упрощает работу при работе с большими файлами.

Если растровое изображение больше, чем разумно хранить в файле страницы (> 20-50 ГБ), используйте файл с сохраненной памятью, иначе просто используйте нормальное распределение. Файл с отображением памяти обеспечивает преимущества хранения данных в памяти, но без недостатка требующих больших объемов пространства подкачки, поскольку файл используется как отдельный файл страницы.

Если файл достаточно мал для размещения в вашем адресном пространстве (128 ТБ на 64 бит), тогда вы можете просто отобразить весь файл, в то время как если он больше, вам просто нужно отобразить в той части, в которой вы работаете.

О том, как сопоставить файл в памяти, см. По адресу: http://msdn.microsoft.com/en-us/library/windows/desktop/aa366537(v=vs.85).aspx.

  • 0
    мне нужно сохранить этот растровое изображение перед перезагрузкой, не лучше ли файлы с отображением в памяти для этого, чем обычное распределение + сериализация / десиарилизация? хотите, чтобы потребление памяти было хуже с растровым изображением в памяти, если я буду часто писать / читать случайным образом из растрового изображения?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню