Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Delphi |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 3 4 вперед Ctrl→ все |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Наконец дошли руки до моей поделки. Сразу столкнулся с двумя проблемами. 1. При попытке открыть тиф больше 2 гигов оказалось, что TStream этого не может потому что у него 2. При попытке просто создать картинку и задать ей размеры 25000 на 25000 (заведомо больше 2ГБ) поймал исключение при вызове gdi32 CreateCompatibleBitmap(DC: HDC; Width, Height: Integer): HBitmap;. А тут уже не совсем ясно. Это может быть связано с тем, что у меня в видюшке всего 2 гига памяти? Прошу совета, в каком направлении двигаться. В общем, задача выглядит так: открываем большую-большую картинку, рисуем на ней LineTo, TextOut, сохраняем. Показывать картинку целиком я не собираюсь, только маленький кусочек для превью. Разбивать картинку на кусочки тоже не собираюсь, там на стыках слишком много лишних расчетов получится. Да и не для того я 32 гига оперативки покупал. Delphi XE3, Windows 7 SP1 x64. |
22 фев 21, 20:09 [22284875] Ответить | Цитировать Сообщить модератору |
kdv Member Откуда: iBase.ru Сообщений: 29563 |
Flying-home, приложение 32бит? ну не может оно аллокировать больше 2 гиг. Что за программисты пошли, вообще ничего не знают. |
22 фев 21, 20:13 [22284877] Ответить | Цитировать Сообщить модератору |
Dimitry Sibiryakov Member Откуда: Сообщений: 52504 |
Что тебе неясно? Лапки не только у TStream. Забей на битмап, работай просто с массивом пикселей. Posted via ActualForum NNTP Server 1.5 |
||
22 фев 21, 20:21 [22284881] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Да не, специально скачал свежую (относительно) Дельфу, выставил в свойствах проекта таргет платформ x64. |
||||
22 фев 21, 20:26 [22284883] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14211 |
|
||||||||
22 фев 21, 20:28 [22284886] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Думаю, так и придется. А рисовать как? Самому вот это вот все реализовывать? Я хочу и полупрозрачность, и другие вкусняшки GDI. |
||||||
22 фев 21, 20:29 [22284887] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Бить на кусочки? Грустно. |
||||||||||||
22 фев 21, 20:30 [22284888] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14211 |
Flying-home, Ты хочешь сказать, что исходная картинка не из кусочков? Можно я не поверю? |
22 фев 21, 20:33 [22284890] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Ну конечно, была склеена из кусочков. Но рисовать-то удобнее на целом листе. Кстати, есть такие картинки, которые точно не из кусочков. https://api.discover.digitalglobe.com/show?id=103001008D9D1700 Это превьюшка снимка разрешением 0.5 метра на пиксель. Там точно больше 2 гигов. |
||||
22 фев 21, 20:40 [22284894] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14211 |
Flying-home, Нет таких матриц в природе, это все панорамные съемки. И хранить их в непорезанном виде - совсем не умная идея. |
22 фев 21, 20:46 [22284897] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Они хранятся продаются в непорезанном виде. И ортокоррекцию им делают тоже в непорезанном виде. Так удобнее. Кстати, делаются они тоже целиком, за один проход. Но там по принципу сканера фотка делается, ширина снимка ограничена размером матрицы, а высота - нет. |
||||
22 фев 21, 21:05 [22284905] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Ладно, вернемся к нашим баранам. Если я буду резать картинки на кусочки по 2 гига, смогу ли я работать с каждым их этих кусочков в отдельном потоке? И это. Тот же Ирфан Вью легко и быстро открывает и показывает этот тиф. Значит, он что-то знает, чего не знаем мы? |
22 фев 21, 21:10 [22284908] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14211 |
Рискну предположить, что в твоем tiff-е оно и есть, только зачем-то запихнуто в один файл.
Сомнительно что так со спутника можно снять, временной параллакс и все такое. |
||||||||
22 фев 21, 21:15 [22284911] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14211 |
|
||||
22 фев 21, 21:16 [22284913] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Я имею в виду, нет ли у GDI каких-то ограничений на вызов функций не из основного потока приложения?
Правда, он на плюсах написан. |
||||||||
22 фев 21, 21:21 [22284916] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14211 |
|
||||
22 фев 21, 21:22 [22284917] Ответить | Цитировать Сообщить модератору |
miksoft Member Откуда: Сообщений: 38702 |
Можете дать образец такого тифа? |
||||
22 фев 21, 21:23 [22284918] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
1. Тайлы начинают рулить, когда приходится показывать эту картинку на экране. А на стадии обработки одним куском удобнее. Ну представь, тебе надо нарисовать горизонталь, которая тянется через всю картинку. Или любую другую линию. На тайлах никто не рисует. 2. Да, уверен. Просто по-другому никак. |
||||||||||||
22 фев 21, 21:25 [22284920] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Классная идея! Ща выложу. |
||||||||
22 фев 21, 21:26 [22284921] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14211 |
Аннотации нужно в векторном виде хранить и рисовать оверлеем. |
||||
22 фев 21, 21:29 [22284923] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
В общем и целом да. Но иногда надо рисовать. Например, когда конечное приложение не умеет вектор. Или как в моем случае, нет приложений, которые рисовали бы вектор так, как мне надо. |
||||||||
22 фев 21, 21:33 [22284924] Ответить | Цитировать Сообщить модератору |
Соколинский Борис Member Откуда: Москва Сообщений: 14211 |
|
||||
22 фев 21, 21:44 [22284928] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Не все так просто. Яндекс хочет, чтобы я какую-то прогу установил. |
||||||||
22 фев 21, 21:45 [22284930] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Вот тут пацаны в далеком 2001 году пришли к выводу, что работа CreateCompatibleBitmap таки зависит от видеокарты и настройки драйверов.
Это никуда не годится. Получается, надо искать способы рисовать на битмапе без GDI. |
||||||||||
22 фев 21, 22:38 [22284949] Ответить | Цитировать Сообщить модератору |
Flying-home Member Откуда: kart.vrostove.net Сообщений: 15000 |
Ах, если бы делать то что надо было бы так же просто, как знать, что надо делать! (С) "Написать самому" в данном случае будет сложнее, чем написать свою ГИС с нуля. У меня сейчас продукт получается в результате последовательных действий в четырех разных программах. Работа третьей меня не устраивает. Надо или ждать, пока ее разработчики почешутся, или писать то, о чем я говорю. Именно рисовать на больших растрах. |
||||||||
22 фев 21, 22:48 [22284952] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 3 4 вперед Ctrl→ все |
Все форумы / Delphi | ![]() |