문제는 다음과 같습니다. 매우 큰 바이너리 이미지 (100000x100000 픽셀)로 작업해야합니다. 처음에는 Qt의 QImage 클래스를 사용하여 이미지를 픽셀 당 1 비트로 저장하는 Format_Mono 형식을 지원합니다. QPainter는 래스터 라이저가 제한되어 있고 크기가 더 짧은 이미지 (32767x32767)를 그릴 수 없을 때까지는 문제가 없었습니다.바이너리 (픽셀 당 1 비트) 이미지 작업 C++
이미지를 32767x32767 이상 결합 할 수 없습니다. 그런 다음 개별 라이브러리를 자세히 살펴보기 시작했습니다. OpenCV는이 형식을 지원하지 않습니다. ImageMagick에 관해서는, 1 픽셀 당 1 비트의 이미지의 구축을 서포트 해, 같은 형식으로 보존합니다. 그러나 이미지 작업은 여전히 픽셀 당 8 비트로 저장되므로 RAM이 부족합니다. 그럼 난 CIMG를 사용하기로 결정했습니다,하지만 난 이해가, 1bbp 형식을 지원 절하지 않습니다
(바이트) 하나 개의 인스턴스 이미지 다음이다위한 사용 된 메모리의 전체 크기 '폭 x 높이 x 깊이를 X 희미한 X는 sizeof (T) 원칙적으로 QImage가 Format_Mono 형식으로 작동하는 방법 그것은 재미 있었다
를 sizeof (T)는 물론 (문자)를 sizeof보다 작을 수 없습니다
...하지만, 솔직히, 나는 소스 코드에 얽혀 있었다.
그럼, 다음 질문이 있습니다. 바이너리 이미지를 만들고 작업 할 수있는 기능을 구현 한 라이브러리가 있습니까?이 경우 실제로 RAM의 픽셀 당 1 비트로 저장됩니까?
감사합니다. 그리고 만약 내가 어떤 이미지를 만들고 그것에 다른 이미지를 그리면 스트리밍 스타일로 작동할까요? – bronstein87
예. 한 이미지를 다른 이미지에 붙여 넣을 수 있습니다. 파이썬에서,'im = im.insert (sub, 100, 100)'은 좌표 (100, 100)에서 이미지'im'에 이미지'sub'를 붙여 넣습니다. http://www.vips.ecs.soton.ac.uk/supported/current/doc/html/libvips/libvips-conversion.html#vips-insert – user894763
죄송하지만 내 질문에 하나 더 대답 해 주실 수 있습니까? 귀하의 예제에서는 파일에서 거대한 이미지를로드했습니다. 그러나 vips_black 또는 다른 생성자를 사용하여 큰 이미지를 만들어야하는 경우에는 어떻게해야합니까? 내가 너를 제대로 이해한다면 나는 그것을 할 수 없다. – bronstein87