Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
briskly
24 / 0 / 1
Регистрация: 10.02.2012
Сообщений: 6
#1

Резка jpg - C++

15.02.2012, 19:57. Просмотров 594. Ответов 7
Метки нет (Все метки)

Есть задача написать программу которая будет обрезать jpeg файлы. Но проблема в том что, среди исходых файлов возможны сверх большие, от сотни Мегабайт до пары Гигабайтов(например карты), встает вопрос, есть ли какая нибудь возможность, резать эти файлы не загружая целиком в память, то есть используя что то типо fseek, и декодируя jpeg кусочками. Возможно ли это вообще? Если да, то возможно есть какие либо готовые библиотеки для этого ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
Эксперт C
 Аватар для Байт
15036 / 9438 / 1380
Регистрация: 24.12.2010
Сообщений: 17,448
15.02.2012, 23:44     Резка jpg #2
briskly, очень хороший вопрос, но ответа на него я, увы! не знаю. Мой пост - чтоб на тему подписаться.
silent_1991
15.02.2012, 23:52
  #3

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Мой пост - чтоб на тему подписаться.
Опции темы -> Подписаться на эту тему...

briskly
24 / 0 / 1
Регистрация: 10.02.2012
Сообщений: 6
16.02.2012, 11:17  [ТС]     Резка jpg #4
silent_1991, а можно перепост, в раздел с++ для экспертов
Yurii_74
paladin
 Аватар для Yurii_74
279 / 179 / 3
Регистрация: 25.02.2009
Сообщений: 592
16.02.2012, 11:20     Резка jpg #5
Если использовалось последовательное представление данных, то, наверное, можно как-то извернуться (sequential JPEG). Но это нужно разбираться с форматом и кодированием. Если прогрессивное - то вряд ли. Я думаю, стоит начать с этого.
briskly
24 / 0 / 1
Регистрация: 10.02.2012
Сообщений: 6
16.02.2012, 12:40  [ТС]     Резка jpg #6
Yurii_74, спасибо, но эту ссылку я уже читал, смотрел и более подробную статью о JPEG. кодирование последовательное. В одном месте мне посоветовали разбор JPEG на блоки 8*8, которые вроде не связаны между собой, однако разбить на них вручную не получилось, хотя просидел в hex редакторе немало времени. Может есть у кого нибудь опыт работы с этими блоками
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.02.2012, 13:56     Резка jpg #7
Для гигантских изображений, например, для астрономических снимков высокого разрешения, радоикарт Венеры и тому подобных является нормой подход, при котором вообще ни один файл в оперативу целиком не грузится, а всё делается на винчестере. Этот подход не ограничен какими то определёнными типами, а является общим. В оперативу jpeg грузится? Грузится. Оттуда отображается и обрабатывается? Отображается и обрабатывается. В чем проблема? Винчестер тоже память. В данном подходе оператива используется только в качестве кэша. В каждом конкретном случае надо знать формат файла, от этого ни куда не уйдёшь. А при загрузке его в оперативу формат знать разве не надо?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2012, 16:03     Резка jpg
Еще ссылки по теме:

C++ Стандартный jpg компрессор
C++ Бинарная запись в конец файла JPG и считывание
Посоветуйте кроссплатформенную библиотеку по работе с jpg C++
Ffmpeg сохранить AVFrame в .bmp или .jpg C++
Библиотека для работы с JPG C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
briskly
24 / 0 / 1
Регистрация: 10.02.2012
Сообщений: 6
16.02.2012, 16:03  [ТС]     Резка jpg #8
Цитата Сообщение от taras atavin Посмотреть сообщение
Этот подход не ограничен какими то определёнными типами, а является общим. В оперативу jpeg грузится? Грузится. Оттуда отображается и обрабатывается? Отображается и обрабатывается. В чем проблема? Винчестер тоже память. В данном подходе оператива используется только в качестве кэша.
Проблема не с оперативой, а с вычислительной сложностью(сейчас и 4 Гб уже не много и для оперативы), дело в том что перед обрезкой, библиотеки декодируют весь файл, а на это уходит много времени, вопрос в том чтобы процессорного времени тратилось как можно меньше, а это уже сложней.

Добавлено через 10 минут
upd. Не могу добавить в Шапку:
Все это делается для технологии Deep Zoom, вопрос в том чтобы не хранить каждое изображения во всех слоях, а генерировать по запросу, но не сразу все, а только те кусочки которые нужны. Решение нужно под linux.
Yandex
Объявления
16.02.2012, 16:03     Резка jpg
Ответ Создать тему
Опции темы

Текущее время: 16:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru