Проблема следующая. Необходимо работать с очень большими двоичными изображениями (100000x100000 пикселей). Первоначально он использовал класс QImage Qt, он поддерживает формат Format_Mono, который сохраняет изображение в виде 1 бит на пиксель. И вообще, все было хорошо, пока не выяснилось, что QPainter имеет ограниченный растеризатор и рисовать изображения, размер которых короче (32767x32767) не может быть, он просто отключен.Работа с двоичными (1 бит на пиксель) изображения C++
Мне не удалось комбинировать изображения более чем на 32767x32767. Затем я стал внимательно смотреть на отдельные библиотеки. OpenCV, как я понимаю, не поддерживает этот формат. Что касается ImageMagick, он поддерживает построение изображения как одноразрядное на пиксель и сохраняет его в том же формате. Однако при работе с изображением все еще сохраняется 8 бит на пиксель и, следовательно, возникает нехватка ОЗУ. Тогда я решил попробовать CImg, но это не Suppor 1bbp формат, как я понимаю:
общий размер использованной памяти для одного экземпляра изображения (в байтах) затем «ширина х высота х глубина х тусклый х SizeOf (Т)
Где SizeOf (T), конечно, не может быть меньше, чем SizeOf (Char) ...
Это было интересно, как QImage в принципе работает с форматом Format_Mono, но честно говоря, я запутался в исходном коде.
Итак, у меня есть следующий вопрос. Есть ли библиотека, которая реализовала возможность создавать и работать с бинарными изображениями, и в этом случае они действительно хранятся в виде 1 бит на пиксель в ОЗУ?
спасибо. и что, если я создам какое-то изображение и попытаюсь нарисовать на нем другое изображение, это будет работа в стиле потоковой передачи? – bronstein87
Да, вы можете вставить одно изображение в другое. В Python 'im = im.insert (sub, 100, 100)' вставляет изображение 'sub' в изображение' im' в координате (100, 100). http://www.vips.ecs.soton.ac.uk/supported/current/doc/html/libvips/libvips-conversion.html#vips-insert – user894763
Прошу прощения, но можете ли вы ответить на еще один мой вопрос. В вашем примере вы загрузили свое огромное изображение из файла. Но что, если нужно СОЗДАТЬ такое большое изображение, используя vips_black или какой-нибудь другой конструктор? Если я правильно тебя понимаю, я не могу этого сделать? – bronstein87