Зацикливание последовательности изображений большого формата JPEG / PNG

Я работал над своим проектом по обработке изображений с дистанционным зондированием и зацикливанию последовательности изображений. Каждое полученное изображение (в формате JPEG или PNG) имеет размер примерно 8000 * 4000 пикселей. Наши пользователи обычно хотят зациклить последовательность изображений (более 50 изображений) на основе интересующей области за раз. Таким образом, мне нужно выделить необходимую область просмотра из каждого изображения в соответствии с размером клиента визуализации пользователя. Например, если текущее клиентское представление пользователя имеет размер 640 * 480, мне нужно будет найти блок данных размером 640 * 480 для каждого исходного изображения на основе текущих координат x (столбцы) и y (строки) и переназначить его на взгляд клиента. Когда пользователь перемещается в другую область просмотра с помощью перетаскивания мышью, наша программа должна соответственно повторно загружать региональные данные из каждого исходного изображения как можно скорее.

Я не знаю, что ни в библиотеке JPEG, ни в библиотеке PNG есть встроенные процедуры чтения блоков данных , Такие как размер клиента визуализации. Например, если текущее клиентское представление пользователя имеет размер 640 * 480, мне нужно будет найти блок данных размером 640 * 480 для каждого исходного изображения на основе текущих координат x (столбцы) и y (строки) и переназначить его на взгляд клиента. Когда пользователь перемещается в другую область просмотра с помощью перетаскивания мышью, наша программа должна соответственно повторно загружать региональные данные из каждого исходного изображения как можно скорее.

Я не знаю, что ни в библиотеке JPEG, ни в библиотеке PNG есть встроенные процедуры чтения блоков данных , Такие как размер клиента визуализации. Например, если текущее клиентское представление пользователя имеет размер 640 * 480, мне нужно будет найти блок данных размером 640 * 480 для каждого исходного изображения на основе текущих координат x (столбцы) и y (строки) и переназначить его на взгляд клиента. Когда пользователь перемещается в другую область просмотра путем перетаскивания мышью, наша программа должна соответственно повторно загружать региональные данные из каждого исходного изображения как можно скорее.

Я не знаю, что ни в библиотеке JPEG, ни в библиотеке PNG есть встроенные процедуры чтения блоков данных , Такие как long ReadRectangle (long x0, long y0, long x1, long y1, char * RectData); long ReadInaRectangle (long x0, long y0, short width, short height, char * RectData);

Встроенный распаковщик JPEG не имеет такой функциональности. Я знаю, что в формате JPEG2000 предусмотрена возможность распаковки определенной области изображения. Я не совсем уверен насчет JEPG.

Кто-то предлагает мне использовать CreateFileMapping, MapViewOfFile и CreateDIBSection, чтобы зафиксировать количество байтов сопоставления файла для отображения на представление. В отличие от простых форматов плоских двоичных изображений, таких как * .raw, * .img и * .bmp, Blob JPEG будет содержать не только данные изображения, но и сложный заголовок JPG. Поэтому нелегко отобразить блок представления данных из файла JPEG.

Кто-то рекомендовал мне использовать мозаику изображений или технологию пирамиды изображений для генерации суб-изображений, как это часто бывает, визуализация изображений (Google Планета Земля и т. Д.) .), и приложения ГИС (WebGIS и т. д.).

Как я могу решить эту проблему?

Спасибо за вашу помощь.

Голден Ли

5
задан Joel Coehoorn 20 December 2011 в 04:14
поделиться