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

Забудьте про DDB (CreateCompatibleBitmap), в современных виндах от них никакой пользы нет.
DIB 25000*25000 в 64-битном режиме создаётся, но работает ли рисование - не пробовал.
Код: pascal
1.
2.
3.
b := TBitmap.Create;
b.PixelFormat := pf24Bit;
b.SetSize(25000, 25000);

Вообще лучше искать библиотеку, которая может выделять память под битмап через GetMem. Graphics32 вроде так умеет, и даже через MMF:
https://graphics32.github.io/Docs/Additional Topics/Back-Ends.htm
но рисовать придётся только средствами самой библиотеки.
При загрузке tiff могут быть проблемы, если загрузка не нативная, а скажем через GDI+, то опять же всё пойдёт через виндовые битмапы.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048032
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sapersky
Забудьте про DDB (CreateCompatibleBitmap), в современных виндах от них никакой пользы нет.

Так она вызывается в SetSize!
SetSize - CopyImage - CopyBitmap - Result := GDICheck(CreateCompatibleBitmap(ScreenDC, bmWidth, bmHeight))
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048034
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Да не, специально скачал свежую (относительно) Дельфу

Только в дельфи коммюнити могут сказать "свежая" про версию среды аж 8-летней давности.

Работу с 4+ GB потоками давным давно уже поправили.

А XE3 это всего 2-я версия среды с поддержкой x64.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048036
Sapersky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Flying-home,

Если PixelFormat задан конкретный (не pfDevice по умолчанию), то должен создаваться DIB через CreateDIBSection.
Заглянул в потроха - так и есть, CreateDIBSection в CopyBitmap.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048038
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Flying-home
Да не, специально скачал свежую (относительно) Дельфу

Только в дельфи коммюнити могут сказать "свежая" про версию среды аж 8-летней давности.

Работу с 4+ GB потоками давным давно уже поправили.

А XE3 это всего 2-я версия среды с поддержкой x64.

Я до этого писал в BDS 2006, мне хватало. Тут захотелось много памяти, спросил пацанов в соседнем топике, что ставить. Посоветовали XE3, сказали, за глаза хватит.
А тут, оказывается, не все так просто. И TStream с шестой версии не переписывался.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048039
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sapersky
Flying-home,

Если PixelFormat задан конкретный (не pfDevice по умолчанию), то должен создаваться DIB через CreateDIBSection.
Заглянул в потроха - так и есть, CreateDIBSection в CopyBitmap.

Это уже лучше. Осталось загрузить имеющийся тифф в этот битмап. Спасибо.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048040
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Я до этого писал в BDS 2006, мне хватало.

Такая веселая хрень имхо вообще только в дельфи комьюнити и существует. ;)
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048041
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Flying-home
Я до этого писал в BDS 2006, мне хватало.

Такая веселая хрень имхо вообще только в дельфи комьюнити и существует. ;)

Не знаю, о каком комьюнити ты говоришь, я большей частью сам по себе. Мне для поделок хватало, и ладно.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048042
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat
Flying-home
Я до этого писал в BDS 2006, мне хватало.

Такая веселая хрень имхо вообще только в дельфи комьюнити и существует. ;)


Да ладно. К нам один человечек на работу устраиваться приходил, он на C++ пишет, использует MS VS 6.0, и (по его словам) контора, где он раньше работал.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048043
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
Sapersky
Flying-home,

Если PixelFormat задан конкретный (не pfDevice по умолчанию), то должен создаваться DIB через CreateDIBSection.
Заглянул в потроха - так и есть, CreateDIBSection в CopyBitmap.

Это уже лучше. Осталось загрузить имеющийся тифф в этот битмап. Спасибо.

В него битмап из файла не получается загрузить. Все тот же TStream больше 2 гигов не умеет. Весело!
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048044
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
rgreat
пропущено...

Такая веселая хрень имхо вообще только в дельфи комьюнити и существует. ;)


Да ладно. К нам один человечек на работу устраиваться приходил, он на C++ пишет, использует MS VS 6.0, и (по его словам) контора, где он раньше работал .

Так это ключевые слова! Раньше = 20 лет назад.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048045
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
К нам один человечек на работу устраиваться приходил
Как пришел так и ушел? ;)
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048048
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat
ъъъъъ
К нам один человечек на работу устраиваться приходил
Как пришел так и ушел? ;)

Зачем нам сипипишники.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048053
Sapersky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Flying-home
В него битмап из файла не получается загрузить. Все тот же TStream больше 2 гигов не умеет. Весело!
Вам же говорили, что с какой-то версии проблему со стримом исправили - я правда не знаю с какой, у меня XE8 и там не исправлено.
Или смотреть сторонние библиотеки для загрузки Tiff, которые не используют стримы. FreeImage вроде не использует, ImagingLib и т.д. Хотя у них могут быть свои проблемы с загрузкой огромных картинок - что поделаешь, специфическая задача, мало кому это нужно.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048056
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да не может gdi с подобной размерностью нормально работать. Прими как данность. Это уже много раз обсасывалось. Конкретно на своём компе я как-то вычислял максимальный размер битмапа, правда уже не помню точно, но до 30000 точно не дошло. Все подобные вещи рисуются по кускам/тайлам, как уже ранее сказали
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048076
Мудроглюков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home,

Одной из генеральных задач при создании FireMonkey было предоставление возможностей
для создания богатого графического интерфейса и конечно добавлена работа
с большими графическими файлами.
Есть вот специально для больших изображений TBitmapSurface (совместимый с TBitmap).
...
PS Про TBitmapSurface так заявлено разработчиками FireMonkey.

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

Одной из генеральных задач при создании FireMonkey было предоставление возможностей
для создания богатого графического интерфейса и конечно добавлена работа
с большими графическими файлами.
Есть вот специально для больших изображений TBitmapSurface (совместимый с TBitmap).
...
PS Про TBitmapSurface так заявлено разработчиками FireMonkey.

//////////////////////////////////////
PS Скажи - это КАРТУ рисуешь? Для карт есть специальные типы.
PS Почему кусками не отрабатываешь? Лень думать над алгоритмом?


На спутниковом снимке хочу рисовать.

Я готов смириться с разбиением на куски. Но не хочу зависеть от видюшки. Хочу рисовать в ОЗУ средствами ЦПУ.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048121
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мудроглюков
TBitmapSurface

Пацаны говорят, что не получается на ней рисовать. Приходится бить на куски, загружать в обычный TBitmap и рисовать на нем.
https://stackoverflow.com/questions/51523321/how-to-draw-fmx-surface-tbitmapsurface-on-fmx-graphics-tbitmap
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048133
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Flying-home
Мудроглюков
TBitmapSurface

Пацаны говорят, что не получается на ней рисовать. Приходится бить на куски, загружать в обычный TBitmap и рисовать на нем.
https://stackoverflow.com/questions/51523321/how-to-draw-fmx-surface-tbitmapsurface-on-fmx-graphics-tbitmap


Graphics32 попробуй.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048154
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sapersky
Flying-home,

Если PixelFormat задан конкретный (не pfDevice по умолчанию), то должен создаваться DIB через CreateDIBSection.
Заглянул в потроха - так и есть, CreateDIBSection в CopyBitmap.

CreateDIBSection тоже не работает. Сделал картинку 25000 на 25000, сохранил в файл, а там меньше 2ГБ. Сделал 30000 на 30000, поймал ту же ошибку.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048160
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А нет ли случайно в природе решений вроде виртуальной видеокарты? Чтобы подсистема GDI думала, что работает с видюшкой, а на самом деле использовалась обычная память компа?
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048164
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Flying-home
А нет ли случайно в природе решений вроде виртуальной видеокарты? Чтобы подсистема GDI думала, что работает с видюшкой, а на самом деле использовалась обычная память компа?
Значит только проктостоматология?...
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048169
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 процессоров.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048175
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger
Flying-home
А нет ли случайно в природе решений вроде виртуальной видеокарты? Чтобы подсистема GDI думала, что работает с видюшкой, а на самом деле использовалась обычная память компа?
Значит только проктостоматология?...

Если такое решение будет простым и надежным, пуркуа бы не па?

Можно попытаться уточнить формулировку задачи:

Есть много больших картинок (> 2ГБ), на которых надо рисовать объекты размером с эти картинки. Есть много памяти и ядер, но мало видеокарт и мало видеопамяти.

Если я пойду путем разбиения картинки на приемлемые для GDI кусочки, я потеряю в производительности, потому что один поток будет ждать, пока предыдущий освободит видеопамять.
...
Рейтинг: 0 / 0
Картинки больше 2ГБ
    #40048177
Фотография Flying-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А все эти современные новомодные процессоры с графическими ядрами ограничены по объему памяти, которую могут использовать? Я могу им в биосе отдать 60 ГБ ОЗУ?
...
Рейтинг: 0 / 0
25 сообщений из 94, страница 2 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Картинки больше 2ГБ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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