Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-homeЕсть много больших картинок (> 2ГБ), на которых надо рисовать объекты размером с эти картинки. Есть много памяти и ядер, но мало видеокарт и мало видеопамяти. Делаешь из объекта, который надо рисовать, поток пикселей. Потом просто складываешь два потока любым удобным способом, это не требует затрат памяти. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 16:52 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Я, похоже, зря паникую. Вот этот код работает. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. И картинки сохраняются в BMP чуть меньше 2 гигов. В принципе, это меня устроит, если заработает в десяти потоках. Остается открытым вопрос откуда GDI взяло это ограничение на 2 гига? Неужели все-таки это объем видеопамяти? Ща потоки запилю, подождите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 17:08 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
У нас есть коммерческий продукт для работы с географическими сервисами. И там именно поточно блочная архитектура. Если бы он всю память отжирал, им бы никто не рискнул пользоваться)) ...и да вас это тоже касается)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 17:25 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
defecator Graphics32 попробуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:03 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Он закончился на XE2 и, похоже, не 64-битный. Да на нем это и написано https://github.com/graphics32/graphics32/tree/master/Source/Packages и 64 бита тоже, судя по исходникам. Странно, если бы не было - это же самая популярная граф. библиотека для Дельфи. Ограничения в GDI связаны скорее всего с его возрастом, во времена проектирования считали, что "High(Integer) хватит всем". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:03 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
white_nigger У нас есть коммерческий продукт для работы с географическими сервисами. И там именно поточно блочная архитектура. Если бы он всю память отжирал, им бы никто не рискнул пользоваться)) ...и да вас это тоже касается)) Я ж могу заранее сказать, сколько памяти отжирать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:04 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home defecator пропущено... Graphics32 попробуй. Он закончился на XE2 и, похоже, не 64-битный. Да на нем это и написано. https://graphics32.github.io/Docs/Installation.htm Написано только, что в критических секциях может использовать инструкции x64 процессоров. https://github.com/graphics32/graphics32 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:04 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
В потоках все отработало на ура. Только при сохранении битмапа он еще столько же памяти отжирает. Но это решаемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:05 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
white_nigger У нас есть коммерческий продукт для работы с географическими сервисами. И там именно поточно блочная архитектура. Если бы он всю память отжирал, им бы никто не рискнул пользоваться)) ...и да вас это тоже касается)) Че за продукт? Можно посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:06 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky Ограничения в GDI связаны скорее всего с его возрастом, во времена проектирования считали, что "High(Integer) хватит всем". Было бы интересно попытать владельцев разных видюшек выполнить это. Код: pascal 1. 2. 3. 25000 - меньше 2 гигов, 30000 - больше 2 гигов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:09 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky Flying-home Он закончился на XE2 и, похоже, не 64-битный. Да на нем это и написано https://github.com/graphics32/graphics32/tree/master/Source/Packages и 64 бита тоже, судя по исходникам. Странно, если бы не было - это же самая популярная граф. библиотека для Дельфи. Ограничения в GDI связаны скорее всего с его возрастом, во времена проектирования считали, что "High(Integer) хватит всем". Круто. Наверное, заюзаю. Пока заметил, что они линии без пикселизации рисуют, это хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:17 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. Пока выбрал такой путь: Разбивать тифы на куски не больше 2 гигов, рисовать на них, потом склеивать обратно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:28 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, win64, 10.3.3, RAM 12Gb, Video Internal max 1849 Mb (Windows 7x64) 25000x25000: ошибок нет, сохранение на диск 1 875 000 054 bytes. 30000x30000: raised exception class EOutOfResources with message 'Параметр задан неверно.' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 18:49 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-homeПока выбрал такой путь: Разбивать тифы на куски не больше 2 гигов, рисовать на них, потом склеивать обратно. Я не скажу за JPEG, но все остальные поддерживаемые TIFF-ом форматы, описанные в википузии, способны обрабатываться последовательно, не требуя затрат памяти вообще. Просто попробуй свои "куски" сделать один пиксель высотой. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 19:20 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home defecator пропущено... Graphics32 попробуй. Он закончился на XE2 и, похоже, не 64-битный. Да на нем это и написано. Он прекрасно работает в x64, а "32" в названии - это то, что он работает с 32-ухбитными картинками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 19:57 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
defecator Flying-home пропущено... Он закончился на XE2 и, похоже, не 64-битный. Да на нем это и написано. Он прекрасно работает в x64, а "32" в названии - это то, что он работает с 32-ухбитными картинками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 20:47 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Flying-homeПока выбрал такой путь: Разбивать тифы на куски не больше 2 гигов, рисовать на них, потом склеивать обратно. Я не скажу за JPEG, но все остальные поддерживаемые TIFF-ом форматы, описанные в википузии, способны обрабатываться последовательно, не требуя затрат памяти вообще. Просто попробуй свои "куски" сделать один пиксель высотой.На манер "сканера"? Да, интересное решение. Но сперва мне надо будет на чем-то нарисовать свои лайн-ту/мув-ту. А потом уже накладывать два изображения построчно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 20:51 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-homeНо сперва мне надо будет на чем-то нарисовать свои лайн-ту/мув-ту. А надо ли? Проще завести список координат пикселей, которые надо портить в картинке. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 21:07 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Было бы интересно попытать владельцев разных видюшек выполнить это. 25000 - меньше 2 гигов, 30000 - больше 2 гигов. DIB-ы всегда в системной памяти создавались, они же device-independent. Если интересны картографические проекты, то есть SAS.Planet с открытыми исходниками. Использует, кстати, Graphics32. https://github.com/sasgis/sas.planet.src Правда, официальный сайт с бинарниками у них сейчас лежит, но можно на ютубе посмотреть, как оно выглядит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 21:09 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Flying-homeНо сперва мне надо будет на чем-то нарисовать свои лайн-ту/мув-ту. А надо ли? Проще завести список координат пикселей, которые надо портить в картинке.Думаю, надо. Если у меня есть координаты двух точек, между которыми надо нарисовать линию, то нахождение всех пикселей, "которые надо испортить" делается как раз лайнту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 21:32 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky Flying-home Было бы интересно попытать владельцев разных видюшек выполнить это. 25000 - меньше 2 гигов, 30000 - больше 2 гигов. DIB-ы всегда в системной памяти создавались, они же device-independent. Если интересны картографические проекты, то есть SAS.Planet с открытыми исходниками. Использует, кстати, Graphics32. https://github.com/sasgis/sas.planet.src Правда, официальный сайт с бинарниками у них сейчас лежит, но можно на ютубе посмотреть, как оно выглядит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 21:34 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-homeДумаю, надо. Если у меня есть координаты двух точек, между которыми надо нарисовать линию, то нахождение всех пикселей, "которые надо испортить" делается как раз лайнту. Ну смотри: вот есть у тебя линия от 0,0 до 99,99. Битмап с этой линией займёт 10000 пикселей. Просто пиксели линии - 100. Экономия памяти на два порядка. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 22:57 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Flying-homeДумаю, надо. Если у меня есть координаты двух точек, между которыми надо нарисовать линию, то нахождение всех пикселей, "которые надо испортить" делается как раз лайнту. Ну смотри: вот есть у тебя линия от 0,0 до 99,99. Битмап с этой линией займёт 10000 пикселей. Просто пиксели линии - 100. Экономия памяти на два порядка. Да я не собираюсь экономить память. Я думал, что ограничения в 2 ГБ связаны с количеством видеопамяти. Оказалось, что нет. Судя по всему, память под битмап под рисование примитивов выделяется хоть и видеодрайвером, но в обычном ОЗУ и в ней можно рисовать средствами GDI. И выделять ее можно сколько угодно (сколько угодно кусков по 2ГБ) и работать с ней многопоточно. Это все, что мне надо. Но это не точно. Надо будет еще несколько проверок сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 23:14 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky Правда, официальный сайт с бинарниками у них сейчас лежит... Что-то долго лежит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2021, 22:26 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Судя по всему, память под битмап под рисование примитивов выделяется хоть и видеодрайвером, но в обычном ОЗУ и в ней можно рисовать средствами GDI. И выделять ее можно сколько угодно (сколько угодно кусков по 2ГБ) и работать с ней многопоточно. Это все, что мне надо. Не работает в дополнительных потоках. Это то, чего я опасался изначально. Начинает рисовать, потом в какой-то момент перестает без всяких ошибок и предупреждений. Как-будто игнорирует код. При этом поток продолжает работать, что-то считать, сохранять битмап в файл. И еще не освобождает память, выделенную под картинку. Если не трудно, посмотрите, пожалуйста, код. Может, я чего намудрил? Может, чего не вижу или не знаю? Очередной поток запускается кнопкой, чтоб остановить его, надо выбрать его номер в комбобоксе. После выбора нужно время чтобы поток сохранил файл. В Unit2 две константы, размер битмапа и место куда сохранять. Для того, чтобы убедиться, что не работает, достаточно одного потока (у меня по крайней мере). В диспетчере задач пока он рисует, работает ядро (красненький график). Как перестает рисовать, остается только зелененький. После сохранения картинки в отчете пишется, сколько проходов было сделано. А на самой картинке два числа, второе - количество проходов, которые реально рисовались. После остановки потоков приложение надо закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2021, 17:08 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40048192&tid=2037522]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 141ms |

| 0 / 0 |
