Работа с большими(1гигабайт) и гигантскими(10Гб) растрами

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение sts » 20.01.2017 13:51:06

GIMP 32бит откроет 10 гигов?
sts
постоялец
 
Сообщения: 411
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение Лекс Айрин » 20.01.2017 14:18:15

Не открывает, однако...


Вы пытаетесь создать изображение размером 2,0 ГБ.


Если изменить размер изображения с такими параметрами, то оно займет больше места, чем это указано в параметре настроек «Максимальный размер изображения» (134,2 МБ).
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение sts » 20.01.2017 14:20:31

Озадачил гимп созданием новой картинки, он честно предупредил что будет 23 гига, отожрал положенные 2 гига и задумался

Добавлено спустя 42 секунды:
Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрами
«Максимальный размер изображения» можно увеличить говрят
sts
постоялец
 
Сообщения: 411
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение Лекс Айрин » 20.01.2017 14:21:28

Попробую все же покопаться в настройках и поставить размер в 15Гб
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение sts » 20.01.2017 14:23:10

по логике никаких фундаментальных проблем нету, в прошлом веке писать программы способные открыт файл больше чем доступно памяти было обыденным.

Добавлено спустя 1 минуту 47 секунд:
Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрами
во у меня гимп 32бит молча вылетел спустя ~10минут, ниасилил 23 гига
sts
постоялец
 
Сообщения: 411
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение Лекс Айрин » 20.01.2017 14:28:57

Я увеличил где-то до 2 Гб и пришлось закрыть -- комп еле прочихался.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение sts » 20.01.2017 14:34:36

во, сомневаюсь что в гимпе сделали потоковую работу с изображением, так что их исходники не помогут, ведь там где 10гигов там 100 и 200, вон в инетах на 500 гиговые жалуются.
sts
постоялец
 
Сообщения: 411
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение Aleh » 20.01.2017 14:35:37

olegy123 писал(а):у меня проект под линух, пишу на с++.
Вы бы написали, что вам надо затестить, какую операцию.. я бы сделал exe-шник.

А может и и либлу сделал для lazarus-а.
но это будет на выходных..


Вот спасибо добрый человек! Мне нужно ОТКРЫТЬ, ОТОБразить, сохранить(сейчас не актуально, но потом нужно).

Добавлено спустя 40 минут 21 секунду:
Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрами
Я совсем забыл http://www.sasgis.org/category/updates/ ... as-planet/ там правда Embarcadero™ Delphi® XE2 for Win32, и я уже раз пытался поставить её под отладку, но не смог. Она точно может создать большие файлы.
Aleh
новенький
 
Сообщения: 53
Зарегистрирован: 08.08.2016 12:27:45

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение Mirage » 20.01.2017 22:25:48

Здесь:
https://github.com/casteng/base/blob/dev/Resources.pas
Есть класс TMegaImageResource.
Загружает (Prepare()) BMP с разными BpP, строит мипы, разбивает на блоки и сохраняет в таком виде.
Может отдавать любую область (LoadRect()) в виде сырых данных, либо RGBA (LoadRectAsRGBA()). В памяти находятся только нужные в данный момент блоки.
Работает быстро, даже рисовать (SaveRect()) можно на таком изображении.
Данная реализация, правда, грузит сначала целиком в память. Если мипы не нужны, несложно переделать и грузить поблочно.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение MysticCoder » 21.01.2017 10:25:33

В заголовке BMP размер файла стоит как DWORD => размер BMP не больше 4 гб должен быть, откуда вы берете bmp больших размеров? :roll:

Вообще, свою обработку написать не так уж и сложно должно быть, с мип мапами и прочим.... с фильтрациями и сглаживанием при скейле заморочек больше....
MysticCoder
постоялец
 
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение vitaly_l » 21.01.2017 12:17:38

MysticCoder писал(а):с фильтрациями и сглаживанием при скейле заморочек больше....

Да нет там никаких заморочек, сложил все значения цифр и поделил на количество слагаемых цифр. В итоге получил Color одного пикселя. Слагать лучше по 4, 9, 16 итд кубиками сокращать кол-во пикселей. Соответственно и скачки Scale - делать по этим значениям
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение olegy123 » 21.01.2017 14:03:51

Есть заморочки с большими данными - скорость.
Вы же не будете ждать секунд 30 чтобы панорамные raw фото под грузились с диска в память.. не это еще вы смотреть не будете.. по смотреть, что там вы загружено вы начнете еще позже..
Ку да там вращать/работать с мышкой и т.п. Тут даже не всегда аппаратные ускорители могут помочь..
Самое узкое место ширина - pci express..
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение vitaly_l » 21.01.2017 14:25:58

olegy123 писал(а):Есть заморочки с большими данными - скорость.
Вы же не будете ждать секунд 30 чтобы панорамные raw фото под грузились с диска в память

Так я поэтому сразу и сказал, чтобы не грузили фото в память, а мгновенно сокращали до нужного размера. А уже потом... при увеличении, считывали более точные пиксели... Соответственно, вначале там будет считываться каждый 10 000-й пиксель, и только при громадном увеличении будут считываться все пиксели подряд, но для крохотного Trect, который умещается на экран. Таким образом в памяти всегда будет картинка размером с экран, ну или в 5 раз больше, для экономии времени...
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение Aleh » 25.01.2017 09:45:56

Ответ "в первом приближении". Свой "велосипед" размером меньше 10кБ. Читает битмапы(*.bmp) 24bit 1.5Гб целиком, и при FullLoad=false любых размеров, кусочками(тайлами) по потребности. Сейчас ошибки правлю...
Aleh
новенький
 
Сообщения: 53
Зарегистрирован: 08.08.2016 12:27:45

Re: Работа с большими(1гигабайт) и гигантскими(10Гб) растрам

Сообщение vitaly_l » 25.01.2017 09:50:56

Aleh писал(а):Сейчас ошибки правлю

:roll: Везёт человеку, всего-то 10 кб :wink:
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

Рейтинг@Mail.ru