Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Наконец дошли руки до моей поделки. Сразу столкнулся с двумя проблемами. 1. При попытке открыть тиф больше 2 гигов оказалось, что TStream этого не может потому что у него лапки Longint. Объяснение и решение нашел тут. Но это пол-беды. 2. При попытке просто создать картинку и задать ей размеры 25000 на 25000 (заведомо больше 2ГБ) поймал исключение при вызове gdi32 Код: plaintext 1. . А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти? Прошу совета, в каком направлении двигаться. В общем, задача выглядит так: открываем большую-большую картинку, рисуем на ней LineTo, TextOut, сохраняем. Показывать картинку целиком я не собираюсь, только маленький кусочек для превью. Разбивать картинку на кусочки тоже не собираюсь, там на стыках слишком много лишних расчетов получится. Да и не для того я 32 гига оперативки покупал. Delphi XE3, Windows 7 SP1 x64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:09 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, приложение 32бит? ну не может оно аллокировать больше 2 гиг. Что за программисты пошли, вообще ничего не знают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:13 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-homeА тут уже не совсем ясно. Что тебе неясно? Лапки не только у TStream. Забей на битмап, работай просто с массивом пикселей. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:21 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
kdv Flying-home, приложение 32бит? ну не может оно аллокировать больше 2 гиг. Что за программисты пошли, вообще ничего не знают. Да не, специально скачал свежую (относительно) Дельфу, выставил в свойствах проекта таргет платформ x64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:26 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти? Flying-home Прошу совета, в каком направлении двигаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:28 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Flying-homeА тут уже не совсем ясно. Что тебе неясно? Лапки не только у TStream. Забей на битмап, работай просто с массивом пикселей. Думаю, так и придется. А рисовать как? Самому вот это вот все реализовывать? Я хочу и полупрозрачность, и другие вкусняшки GDI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:29 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис Flying-home А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти? Flying-home Прошу совета, в каком направлении двигаться. Бить на кусочки? Грустно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:30 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, Ты хочешь сказать, что исходная картинка не из кусочков? Можно я не поверю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:33 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис Flying-home, Ты хочешь сказать, что исходная картинка не из кусочков? Можно я не поверю? Ну конечно, была склеена из кусочков. Но рисовать-то удобнее на целом листе. Кстати, есть такие картинки, которые точно не из кусочков. https://api.discover.digitalglobe.com/show?id=103001008D9D1700 Это превьюшка снимка разрешением 0.5 метра на пиксель. Там точно больше 2 гигов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:40 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, Нет таких матриц в природе, это все панорамные съемки. И хранить их в непорезанном виде - совсем не умная идея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 20:46 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис Flying-home, Нет таких матриц в природе, это все панорамные съемки. И хранить их в непорезанном виде - совсем не умная идея. Они хранятся продаются в непорезанном виде. И ортокоррекцию им делают тоже в непорезанном виде. Так удобнее. Кстати, делаются они тоже целиком, за один проход. Но там по принципу сканера фотка делается, ширина снимка ограничена размером матрицы, а высота - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:05 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Ладно, вернемся к нашим баранам. Если я буду резать картинки на кусочки по 2 гига, смогу ли я работать с каждым их этих кусочков в отдельном потоке? И это. Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:10 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Они хранятся продаются в непорезанном виде. И ортокоррекцию им делают тоже в непорезанном виде. Так удобнее. Рискну предположить, что в твоем tiff-е оно и есть, только зачем-то запихнуто в один файл. Flying-home Но там по принципу сканера фотка делается, ширина снимка ограничена размером матрицы, а высота - нет. Сомнительно что так со спутника можно снять, временной параллакс и все такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:15 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home И это. Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:16 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Если я буду резать картинки на кусочки по 2 гига, смогу ли я работать с каждым их этих кусочков в отдельном потоке? Я имею в виду, нет ли у GDI каких-то ограничений на вызов функций не из основного потока приложения? Flying-home Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы? Правда, он на плюсах написан. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:21 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Я имею в виду, нет ли у GDI каких-то ограничений на вызов функций не из основного потока приложения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:22 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы? Можете дать образец такого тифа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:23 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис Flying-home Они хранятся продаются в непорезанном виде. И ортокоррекцию им делают тоже в непорезанном виде. Так удобнее. Рискну предположить, что в твоем tiff-е оно и есть, только зачем-то запихнуто в один файл. Flying-home Но там по принципу сканера фотка делается, ширина снимка ограничена размером матрицы, а высота - нет. Сомнительно что так со спутника можно снять, временной параллакс и все такое. 1. Тайлы начинают рулить, когда приходится показывать эту картинку на экране. А на стадии обработки одним куском удобнее. Ну представь, тебе надо нарисовать горизонталь, которая тянется через всю картинку. Или любую другую линию. На тайлах никто не рисует. 2. Да, уверен. Просто по-другому никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:25 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
miksoft Flying-home Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы? Можете дать образец такого тифа? Классная идея! Ща выложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:26 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Ну представь, тебе надо нарисовать горизонталь, которая тянется через всю картинку. Или любую другую линию. На тайлах никто не рисует. Аннотации нужно в векторном виде хранить и рисовать оверлеем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:29 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис Flying-home Ну представь, тебе надо нарисовать горизонталь, которая тянется через всю картинку. Или любую другую линию. На тайлах никто не рисует. Аннотации нужно в векторном виде хранить и рисовать оверлеем. В общем и целом да. Но иногда надо рисовать. Например, когда конечное приложение не умеет вектор. Или как в моем случае, нет приложений, которые рисовали бы вектор так, как мне надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:33 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Или как в моем случае, нет приложений, которые рисовали бы вектор так, как мне надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:44 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home miksoft пропущено... Есть идея скормить этот тиф какому-нибудь опенсорсовому просмотрщику. Если он с ней справится, то можно будет посмотреть в код. Можете дать образец такого тифа? Классная идея! Ща выложу. Не все так просто. Яндекс хочет, чтобы я какую-то прогу установил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 21:45 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home 2. При попытке просто создать картинку и задать ей размеры 25000 на 25000 (заведомо больше 2ГБ) поймал исключение при вызове gdi32 Код: plaintext 1. . А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти? Соколинский Борис Нет. DDB буфер в RAM сидит, и у него есть ограничение на размер. Маловероятно что мы доживем до времени когда буфер отрисовки будет рассчитан на мониторы с таким разрешением. Вот тут пацаны в далеком 2001 году пришли к выводу, что работа CreateCompatibleBitmap таки зависит от видеокарты и настройки драйверов. авторНичего странного. Вызов CreateCompatibleBitmap идет прямиком в дисплей-драйвер под именем DrvCreateDeviceBitmap. Это дает возможность драйверу создать битмап прямо в видеопамяти, что значительно ускоряет последующую работу с ним. Так что очень вероятно, что драйвер здесь причастен. Это никуда не годится. Получается, надо искать способы рисовать на битмапе без GDI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 22:38 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис Flying-home Или как в моем случае, нет приложений, которые рисовали бы вектор так, как мне надо. Ах, если бы делать то что надо было бы так же просто, как знать, что надо делать! (С) "Написать самому" в данном случае будет сложнее, чем написать свою ГИС с нуля. У меня сейчас продукт получается в результате последовательных действий в четырех разных программах. Работа третьей меня не устраивает. Надо или ждать, пока ее разработчики почешутся, или писать то, о чем я говорю. Именно рисовать на больших растрах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 22:48 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, Забудьте про DDB (CreateCompatibleBitmap), в современных виндах от них никакой пользы нет. DIB 25000*25000 в 64-битном режиме создаётся, но работает ли рисование - не пробовал. Код: pascal 1. 2. 3. Вообще лучше искать библиотеку, которая может выделять память под битмап через GetMem. Graphics32 вроде так умеет, и даже через MMF: https://graphics32.github.io/Docs/Additional Topics/Back-Ends.htm но рисовать придётся только средствами самой библиотеки. При загрузке tiff могут быть проблемы, если загрузка не нативная, а скажем через GDI+, то опять же всё пойдёт через виндовые битмапы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:04 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky Забудьте про DDB (CreateCompatibleBitmap), в современных виндах от них никакой пользы нет. Так она вызывается в SetSize! SetSize - CopyImage - CopyBitmap - Result := GDICheck(CreateCompatibleBitmap(ScreenDC, bmWidth, bmHeight)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:18 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Да не, специально скачал свежую (относительно) Дельфу Только в дельфи коммюнити могут сказать "свежая" про версию среды аж 8-летней давности. Работу с 4+ GB потоками давным давно уже поправили. А XE3 это всего 2-я версия среды с поддержкой x64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:22 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, Если PixelFormat задан конкретный (не pfDevice по умолчанию), то должен создаваться DIB через CreateDIBSection. Заглянул в потроха - так и есть, CreateDIBSection в CopyBitmap. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:24 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
rgreat Flying-home Да не, специально скачал свежую (относительно) Дельфу Только в дельфи коммюнити могут сказать "свежая" про версию среды аж 8-летней давности. Работу с 4+ GB потоками давным давно уже поправили. А XE3 это всего 2-я версия среды с поддержкой x64. Я до этого писал в BDS 2006, мне хватало. Тут захотелось много памяти, спросил пацанов в соседнем топике, что ставить. Посоветовали XE3, сказали, за глаза хватит. А тут, оказывается, не все так просто. И TStream с шестой версии не переписывался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:34 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky Flying-home, Если PixelFormat задан конкретный (не pfDevice по умолчанию), то должен создаваться DIB через CreateDIBSection. Заглянул в потроха - так и есть, CreateDIBSection в CopyBitmap. Это уже лучше. Осталось загрузить имеющийся тифф в этот битмап. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:35 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Я до этого писал в BDS 2006, мне хватало. Такая веселая хрень имхо вообще только в дельфи комьюнити и существует. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:39 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
rgreat Flying-home Я до этого писал в BDS 2006, мне хватало. Такая веселая хрень имхо вообще только в дельфи комьюнити и существует. ;) Не знаю, о каком комьюнити ты говоришь, я большей частью сам по себе. Мне для поделок хватало, и ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:42 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
rgreat Flying-home Я до этого писал в BDS 2006, мне хватало. Такая веселая хрень имхо вообще только в дельфи комьюнити и существует. ;) Да ладно. К нам один человечек на работу устраиваться приходил, он на C++ пишет, использует MS VS 6.0, и (по его словам) контора, где он раньше работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:42 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Sapersky Flying-home, Если PixelFormat задан конкретный (не pfDevice по умолчанию), то должен создаваться DIB через CreateDIBSection. Заглянул в потроха - так и есть, CreateDIBSection в CopyBitmap. Это уже лучше. Осталось загрузить имеющийся тифф в этот битмап. Спасибо. В него битмап из файла не получается загрузить. Все тот же TStream больше 2 гигов не умеет. Весело! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:44 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
ъъъъъ rgreat пропущено... Такая веселая хрень имхо вообще только в дельфи комьюнити и существует. ;) Да ладно. К нам один человечек на работу устраиваться приходил, он на C++ пишет, использует MS VS 6.0, и (по его словам) контора, где он раньше работал . Так это ключевые слова! Раньше = 20 лет назад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:46 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
ъъъъъ К нам один человечек на работу устраиваться приходил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2021, 23:48 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
rgreat ъъъъъ К нам один человечек на работу устраиваться приходил Зачем нам сипипишники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 00:03 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home В него битмап из файла не получается загрузить. Все тот же TStream больше 2 гигов не умеет. Весело! Или смотреть сторонние библиотеки для загрузки Tiff, которые не используют стримы. FreeImage вроде не использует, ImagingLib и т.д. Хотя у них могут быть свои проблемы с загрузкой огромных картинок - что поделаешь, специфическая задача, мало кому это нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 01:03 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Да не может gdi с подобной размерностью нормально работать. Прими как данность. Это уже много раз обсасывалось. Конкретно на своём компе я как-то вычислял максимальный размер битмапа, правда уже не помню точно, но до 30000 точно не дошло. Все подобные вещи рисуются по кускам/тайлам, как уже ранее сказали ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 02:28 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, Одной из генеральных задач при создании FireMonkey было предоставление возможностей для создания богатого графического интерфейса и конечно добавлена работа с большими графическими файлами. Есть вот специально для больших изображений TBitmapSurface (совместимый с TBitmap). ... PS Про TBitmapSurface так заявлено разработчиками FireMonkey. ////////////////////////////////////// PS Скажи - это КАРТУ рисуешь? Для карт есть специальные типы. PS Почему кусками не отрабатываешь? Лень думать над алгоритмом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 10:34 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Мудроглюков Flying-home, Одной из генеральных задач при создании FireMonkey было предоставление возможностей для создания богатого графического интерфейса и конечно добавлена работа с большими графическими файлами. Есть вот специально для больших изображений TBitmapSurface (совместимый с TBitmap). ... PS Про TBitmapSurface так заявлено разработчиками FireMonkey. ////////////////////////////////////// PS Скажи - это КАРТУ рисуешь? Для карт есть специальные типы. PS Почему кусками не отрабатываешь? Лень думать над алгоритмом? На спутниковом снимке хочу рисовать. Я готов смириться с разбиением на куски. Но не хочу зависеть от видюшки. Хочу рисовать в ОЗУ средствами ЦПУ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 12:39 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Мудроглюков TBitmapSurface Пацаны говорят, что не получается на ней рисовать. Приходится бить на куски, загружать в обычный TBitmap и рисовать на нем. https://stackoverflow.com/questions/51523321/how-to-draw-fmx-surface-tbitmapsurface-on-fmx-graphics-tbitmap ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 13:14 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Мудроглюков TBitmapSurface Пацаны говорят, что не получается на ней рисовать. Приходится бить на куски, загружать в обычный TBitmap и рисовать на нем. https://stackoverflow.com/questions/51523321/how-to-draw-fmx-surface-tbitmapsurface-on-fmx-graphics-tbitmap Graphics32 попробуй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 14:15 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky Flying-home, Если PixelFormat задан конкретный (не pfDevice по умолчанию), то должен создаваться DIB через CreateDIBSection. Заглянул в потроха - так и есть, CreateDIBSection в CopyBitmap. CreateDIBSection тоже не работает. Сделал картинку 25000 на 25000, сохранил в файл, а там меньше 2ГБ. Сделал 30000 на 30000, поймал ту же ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 15:12 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
А нет ли случайно в природе решений вроде виртуальной видеокарты? Чтобы подсистема GDI думала, что работает с видюшкой, а на самом деле использовалась обычная память компа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 15:29 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home А нет ли случайно в природе решений вроде виртуальной видеокарты? Чтобы подсистема GDI думала, что работает с видюшкой, а на самом деле использовалась обычная память компа? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 15:39 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
defecator Flying-home пропущено... Пацаны говорят, что не получается на ней рисовать. Приходится бить на куски, загружать в обычный TBitmap и рисовать на нем. https://stackoverflow.com/questions/51523321/how-to-draw-fmx-surface-tbitmapsurface-on-fmx-graphics-tbitmap Graphics32 попробуй. Он закончился на XE2 и, похоже, не 64-битный. Да на нем это и написано. https://graphics32.github.io/Docs/Installation.htm Написано только, что в критических секциях может использовать инструкции x64 процессоров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 15:55 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
white_nigger Flying-home А нет ли случайно в природе решений вроде виртуальной видеокарты? Чтобы подсистема GDI думала, что работает с видюшкой, а на самом деле использовалась обычная память компа? Если такое решение будет простым и надежным, пуркуа бы не па? Можно попытаться уточнить формулировку задачи: Есть много больших картинок (> 2ГБ), на которых надо рисовать объекты размером с эти картинки. Есть много памяти и ядер, но мало видеокарт и мало видеопамяти. Если я пойду путем разбиения картинки на приемлемые для GDI кусочки, я потеряю в производительности, потому что один поток будет ждать, пока предыдущий освободит видеопамять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 16:07 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
А все эти современные новомодные процессоры с графическими ядрами ограничены по объему памяти, которую могут использовать? Я могу им в биосе отдать 60 ГБ ОЗУ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2021, 16:15 |
|
||
|
Картинки больше 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 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, Вроде бы в VCL рисование не потокобезопасное, какие-то глобальные переменные используются, что ли (точно не помню, давно TBitmap не использую). То есть от размера битмапов это скорее всего не зависит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2021, 18:45 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky Flying-home, Вроде бы в VCL рисование не потокобезопасное, какие-то глобальные переменные используются, что ли (точно не помню, давно TBitmap не использую). То есть от размера битмапов это скорее всего не зависит. А какие там глобальные переменные могут быть? Битмап и битмап. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2021, 19:35 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home, Не знаю, но так уж оно устроено. "Apparently the Delphi VCL bitmap is not threadsafe, even if you don't display it" https://stackoverflow.com/questions/27406055/delphi-bitmap-in-thread Можно Canvas.Lock попробовать и создавать битмапы заранее, не в потоках. Но в рабочем приложении в потоке будет же ещё распаковка tiff? Если она идёт через VCL-ные битмапы, то тоже может заглючить. В общем, лучше избавляться от TBitmap. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2021, 03:06 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky, Берите Graphics32 и рисуйте в потоках. Но только его собственными методами, а не трансляцией GDI-шных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2021, 03:27 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky, привет, стукни мне плиз в телегу по поводу Graphics32, есть вопрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2021, 17:26 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
rgreat, Я там в TCustomBitmap32.LoadFromFile вот это увидел. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Graphics32 точно non-GDI? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 09:10 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home rgreat, Я там в TCustomBitmap32.LoadFromFile вот это увидел. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Graphics32 точно non-GDI? ты предлагаешь, чтобы GR32 реализовал нативно загрузку из статыщ графических форматов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 09:29 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
defecator Flying-home rgreat, Я там в TCustomBitmap32.LoadFromFile вот это увидел. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Graphics32 точно non-GDI? ты предлагаешь, чтобы GR32 реализовал нативно загрузку из статыщ графических форматов ? Да я ничего не предлагаю. Я ищу подходящий мне инструмент. Была предложена Graphics32, как независящая от GDI. Похоже, это не так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 12:39 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home rgreat, Я там в TCustomBitmap32.LoadFromFile вот это увидел. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Graphics32 точно non-GDI? Graphics32 никогда не была "non-GDI". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 15:05 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Да я ничего не предлагаю. Я ищу подходящий мне инструмент. Была предложена Graphics32, как независящая от GDI . Похоже, это не так. Не надо ничего придумывать. То что Graphics32 во многом может работать не пользуясь функциями GDI не значит что она GDI не использует вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 15:07 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
defecatorты предлагаешь, чтобы GR32 реализовал нативно загрузку из статыщ графических форматов ? Так GDI с этим не поможет, там поддержаны только BMP, ICO и т.п. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 15:07 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Flying-home Судя по всему, память под битмап под рисование примитивов выделяется хоть и видеодрайвером, но в обычном ОЗУ и в ней можно рисовать средствами GDI. И выделять ее можно сколько угодно (сколько угодно кусков по 2ГБ) и работать с ней многопоточно. Это все, что мне надо. Не работает в дополнительных потоках. Это то, чего я опасался изначально. Начинает рисовать, потом в какой-то момент перестает без всяких ошибок и предупреждений. Как-будто игнорирует код. При этом поток продолжает работать, что-то считать, сохранять битмап в файл. И еще не освобождает память, выделенную под картинку. Если не трудно, посмотрите, пожалуйста, код. Может, я чего намудрил? Может, чего не вижу или не знаю? Очередной поток запускается кнопкой, чтоб остановить его, надо выбрать его номер в комбобоксе. После выбора нужно время чтобы поток сохранил файл. В Unit2 две константы, размер битмапа и место куда сохранять. Для того, чтобы убедиться, что не работает, достаточно одного потока (у меня по крайней мере). В диспетчере задач пока он рисует, работает ядро (красненький график). Как перестает рисовать, остается только зелененький. После сохранения картинки в отчете пишется, сколько проходов было сделано. А на самой картинке два числа, второе - количество проходов, которые реально рисовались. После остановки потоков приложение надо закрывать. https://www.sql.ru/forum/actualfile.aspx?id=22287330] Приложенный файл (first.zip - 86Kb) Поменял TBitmap на TBitmap32, убрал PixelFormat и все заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 20:05 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Flying-home пропущено... Не работает в дополнительных потоках. Это то, чего я опасался изначально. Начинает рисовать, потом в какой-то момент перестает без всяких ошибок и предупреждений. Как-будто игнорирует код. При этом поток продолжает работать, что-то считать, сохранять битмап в файл. И еще не освобождает память, выделенную под картинку. Если не трудно, посмотрите, пожалуйста, код. Может, я чего намудрил? Может, чего не вижу или не знаю? Очередной поток запускается кнопкой, чтоб остановить его, надо выбрать его номер в комбобоксе. После выбора нужно время чтобы поток сохранил файл. В Unit2 две константы, размер битмапа и место куда сохранять. Для того, чтобы убедиться, что не работает, достаточно одного потока (у меня по крайней мере). В диспетчере задач пока он рисует, работает ядро (красненький график). Как перестает рисовать, остается только зелененький. После сохранения картинки в отчете пишется, сколько проходов было сделано. А на самой картинке два числа, второе - количество проходов, которые реально рисовались. После остановки потоков приложение надо закрывать. https://www.sql.ru/forum/actualfile.aspx?id=22287330] Приложенный файл (first.zip - 86Kb) Поменял TBitmap на TBitmap32, убрал PixelFormat и все заработало. и чо, даже 2 гига BMP загружает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 20:09 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Flying-home Я ищу подходящий мне инструмент. Была предложена Graphics32, как независящая от GDI. Похоже, это не так. https://graphics32.github.io/Docs/Units/GR32/Classes/TBitmap32/_Body.htm Если и так работает - хорошо, если нет, ищите другие библиотеки для загрузки. Я ранее FreeImage предлагал. Также для (почти?) любого известного формата есть библиотека с эталонной реализацией, называется lib[формат]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 20:19 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Sapersky FreeImage FreeImage не умеет рисовать на картинках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 20:27 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
Я ему на параллельном форуме показал, что в Delphi можно загружать картинки в 2 гига без проблем И даже рисовать на них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 20:31 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
defecator Я ему на параллельном форуме показал, что в Delphi можно загружать картинки в 2 гига без проблем И даже рисовать на них. Показал видео . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2021, 20:54 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
defecator FreeImage не умеет рисовать на картинках Я ещё вспомнил, что в новых Дельфях есть TWicImage. Работает он разумеется через TBitmap, но можно выковырять оттуда загрузку картинки через WIC и понадеяться, что MS озаботилась отсутствием глупых ограничений в этом относительно новом API. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2021, 01:54 |
|
||
|
Картинки больше 2ГБ
|
|||
|---|---|---|---|
|
#18+
немного не в тему, а хотя может наоборот в тему, была задача лет 10 назад может более, где ни чего архивировать смысла не было. был заказчик, так вот он поставил задачу, сделать базу данных из MKV файлов, кое что я видел, но это была полная глуппость в постановке задач, но как говорят, есть заказ, будет решение. так вот, файлы MKV прыгали от 500 метров до 3000 метров (3Гб). ни какого складирования на диски, а всё в базу, мне повезло, он согласился тогда использовать Oracle тогда была или 10-ка или 9-ка, и не Enterprise версия, у заказчика даже была лицензия на Оракл, но какая то мелкая, ну так вот, я создал небольшую базу данных, написал к ней GUI, и использвал поля BLOB или даже LONG RAW (не помню сейчас), а они были по 2 Gb в той версии Oracle. так вот мой GUI просто брал эти файлы и писал в базу, а там где они рвались на куски или нет, заказчик не знает. эти файлы напрямую не посмотришь (воиспроизвети из БД нииизззяяяя, может сейчас можно что то придумать, грузить куда нибудь в переменную вместе с КОДеКом, но тогда низзяяяя было). В итоге файлы загружались и выгружались. При том анализ был на случай какого нибудь разрыва закачки, была также организована докачка. я узнал через пару лет, у него было тогда уже около 16 ТБ архива и что он туда грузил, что именно потом, мне уже не известно. но замечаний не поступало ни разу. Суть была типа Каталогизатор, или Архивариус. Зачем все в базе держать?, это вопросы к заказчику. поэтому берете файл 2Гб или 22Гб, и грузите его кусочками, о структуре файла даже заморачиваться не надо. определите блок, который будет вам удобнее в случае разрыва, чтобы было проще разрыв найти для докачки и вперед!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2021, 21:06 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2037522]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
93ms |
get tp. blocked users: |
1ms |
| others: | 69ms |
| total: | 228ms |

| 0 / 0 |
