powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Картинки больше 2ГБ
25 сообщений из 94, страница 1 из 4
Картинки больше 2ГБ
    #40047973
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наконец дошли руки до моей поделки. Сразу столкнулся с двумя проблемами.

1. При попытке открыть тиф больше 2 гигов оказалось, что TStream этого не может потому что у него лапки Longint. Объяснение и решение нашел тут. Но это пол-беды.
2. При попытке просто создать картинку и задать ей размеры 25000 на 25000 (заведомо больше 2ГБ) поймал исключение при вызове gdi32
Код: plaintext
1.
CreateCompatibleBitmap(DC: HDC; Width, Height: Integer): HBitmap;

. А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти?

Прошу совета, в каком направлении двигаться. В общем, задача выглядит так: открываем большую-большую картинку, рисуем на ней LineTo, TextOut, сохраняем. Показывать картинку целиком я не собираюсь, только маленький кусочек для превью. Разбивать картинку на кусочки тоже не собираюсь, там на стыках слишком много лишних расчетов получится. Да и не для того я 32 гига оперативки покупал.

Delphi XE3, Windows 7 SP1 x64.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047974
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home,

приложение 32бит? ну не может оно аллокировать больше 2 гиг. Что за программисты пошли, вообще ничего не знают.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047977
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-homeА тут уже не совсем ясно.

Что тебе неясно? Лапки не только у TStream. Забей на битмап, работай просто с массивом
пикселей.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047978
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
Flying-home,

приложение 32бит? ну не может оно аллокировать больше 2 гиг. Что за программисты пошли, вообще ничего не знают.

Да не, специально скачал свежую (относительно) Дельфу, выставил в свойствах проекта таргет платформ x64.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047981
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти?
Нет. DDB буфер в RAM сидит, и у него есть ограничение на размер. Маловероятно что мы доживем до времени когда буфер отрисовки будет рассчитан на мониторы с таким разрешением.

Flying-home

Прошу совета, в каком направлении двигаться.
В том, куда ты не хочешь.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047982
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
Flying-homeА тут уже не совсем ясно.

Что тебе неясно? Лапки не только у TStream. Забей на битмап, работай просто с массивом
пикселей.
Думаю, так и придется. А рисовать как? Самому вот это вот все реализовывать? Я хочу и полупрозрачность, и другие вкусняшки GDI.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047983
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home
А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти?
Нет. DDB буфер в RAM сидит, и у него есть ограничение на размер. Маловероятно что мы доживем до времени когда буфер отрисовки будет рассчитан на мониторы с таким разрешением.

Flying-home

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

Бить на кусочки? Грустно.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047984
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home,
Ты хочешь сказать, что исходная картинка не из кусочков? Можно я не поверю?
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047986
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home,
Ты хочешь сказать, что исходная картинка не из кусочков? Можно я не поверю?

Ну конечно, была склеена из кусочков. Но рисовать-то удобнее на целом листе.

Кстати, есть такие картинки, которые точно не из кусочков.
https://api.discover.digitalglobe.com/show?id=103001008D9D1700
Это превьюшка снимка разрешением 0.5 метра на пиксель. Там точно больше 2 гигов.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047988
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home,
Нет таких матриц в природе, это все панорамные съемки. И хранить их в непорезанном виде - совсем не умная идея.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047994
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home,
Нет таких матриц в природе, это все панорамные съемки. И хранить их в непорезанном виде - совсем не умная идея.

Они хранятся продаются в непорезанном виде. И ортокоррекцию им делают тоже в непорезанном виде. Так удобнее.
Кстати, делаются они тоже целиком, за один проход. Но там по принципу сканера фотка делается, ширина снимка ограничена размером матрицы, а высота - нет.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047996
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, вернемся к нашим баранам. Если я буду резать картинки на кусочки по 2 гига, смогу ли я работать с каждым их этих кусочков в отдельном потоке?

И это. Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы?
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40047998
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Они хранятся продаются в непорезанном виде. И ортокоррекцию им делают тоже в непорезанном виде. Так удобнее.
Нифига это не удобнее. Удобно тайлы + пирамида, очень быстро получаешь и целиком в малом масштабе и нужный фрагмент в натуральном. Это пограничные случаи, все остальные в них вписываются.
Рискну предположить, что в твоем tiff-е оно и есть, только зачем-то запихнуто в один файл.

Flying-home
Но там по принципу сканера фотка делается, ширина снимка ограничена размером матрицы, а высота - нет.
Уверен?
Сомнительно что так со спутника можно снять, временной параллакс и все такое.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048000
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
И это. Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы?
Посмотри инфу о файле. Наверняка многостраничный и первой как раз верхушка пирамиды.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048003
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Если я буду резать картинки на кусочки по 2 гига, смогу ли я работать с каждым их этих кусочков в отдельном потоке?

Я имею в виду, нет ли у GDI каких-то ограничений на вызов функций не из основного потока приложения?

Flying-home
Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы?

Правда, он на плюсах написан.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048004
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Я имею в виду, нет ли у GDI каких-то ограничений на вызов функций не из основного потока приложения?
Нет.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048005
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы?
Есть идея скормить этот тиф какому-нибудь опенсорсовому просмотрщику. Если он с ней справится, то можно будет посмотреть в код.

Можете дать образец такого тифа?
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048007
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home
Они хранятся продаются в непорезанном виде. И ортокоррекцию им делают тоже в непорезанном виде. Так удобнее.
Нифига это не удобнее. Удобно тайлы + пирамида, очень быстро получаешь и целиком в малом масштабе и нужный фрагмент в натуральном. Это пограничные случаи, все остальные в них вписываются.
Рискну предположить, что в твоем tiff-е оно и есть, только зачем-то запихнуто в один файл.

Flying-home
Но там по принципу сканера фотка делается, ширина снимка ограничена размером матрицы, а высота - нет.
Уверен?
Сомнительно что так со спутника можно снять, временной параллакс и все такое.


1. Тайлы начинают рулить, когда приходится показывать эту картинку на экране. А на стадии обработки одним куском удобнее. Ну представь, тебе надо нарисовать горизонталь, которая тянется через всю картинку. Или любую другую линию. На тайлах никто не рисует.

2. Да, уверен. Просто по-другому никак.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048008
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft
Flying-home
Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы?
Есть идея скормить этот тиф какому-нибудь опенсорсовому просмотрщику. Если он с ней справится, то можно будет посмотреть в код.

Можете дать образец такого тифа?

Классная идея! Ща выложу.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048010
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Ну представь, тебе надо нарисовать горизонталь, которая тянется через всю картинку. Или любую другую линию. На тайлах никто не рисует.
Мне и представлять не надо, имею большой опыт подобных действий.
Аннотации нужно в векторном виде хранить и рисовать оверлеем.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048011
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home
Ну представь, тебе надо нарисовать горизонталь, которая тянется через всю картинку. Или любую другую линию. На тайлах никто не рисует.
Мне и представлять не надо, имею большой опыт подобных действий.
Аннотации нужно в векторном виде хранить и рисовать оверлеем.

В общем и целом да. Но иногда надо рисовать. Например, когда конечное приложение не умеет вектор. Или как в моем случае, нет приложений, которые рисовали бы вектор так, как мне надо.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048014
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Или как в моем случае, нет приложений, которые рисовали бы вектор так, как мне надо.
Ну так напиши сам. Или программиста найди.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048015
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
miksoft
пропущено...
Есть идея скормить этот тиф какому-нибудь опенсорсовому просмотрщику. Если он с ней справится, то можно будет посмотреть в код.

Можете дать образец такого тифа?

Классная идея! Ща выложу.

Не все так просто. Яндекс хочет, чтобы я какую-то прогу установил.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048022
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
2. При попытке просто создать картинку и задать ей размеры 25000 на 25000 (заведомо больше 2ГБ) поймал исключение при вызове gdi32
Код: plaintext
1.
CreateCompatibleBitmap(DC: HDC; Width, Height: Integer): HBitmap;


. А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти?

Соколинский Борис
Нет. DDB буфер в RAM сидит, и у него есть ограничение на размер. Маловероятно что мы доживем до времени когда буфер отрисовки будет рассчитан на мониторы с таким разрешением.


Вот тут пацаны в далеком 2001 году пришли к выводу, что работа CreateCompatibleBitmap таки зависит от видеокарты и настройки драйверов.
авторНичего странного. Вызов CreateCompatibleBitmap идет прямиком в дисплей-драйвер под именем DrvCreateDeviceBitmap. Это дает возможность драйверу создать битмап прямо в видеопамяти, что значительно ускоряет последующую работу с ним. Так что очень вероятно, что драйвер здесь причастен.

Это никуда не годится. Получается, надо искать способы рисовать на битмапе без GDI.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048023
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Flying-home
Или как в моем случае, нет приложений, которые рисовали бы вектор так, как мне надо.
Ну так напиши сам. Или программиста найди.

Ах, если бы делать то что надо было бы так же просто, как знать, что надо делать! (С)
"Написать самому" в данном случае будет сложнее, чем написать свою ГИС с нуля. У меня сейчас продукт получается в результате последовательных действий в четырех разных программах. Работа третьей меня не устраивает. Надо или ждать, пока ее разработчики почешутся, или писать то, о чем я говорю. Именно рисовать на больших растрах.
...
Рейтинг: 0 / 0
25 сообщений из 94, страница 1 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Картинки больше 2ГБ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]