![]() |
|
Модераторы: Snowy, Alexeis, MetalFan |
![]()
|
|
| gonzales |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 13.3.2006 Репутация: 1 Всего: 2 |
Уважаемые форумчане!!!
собственно сабж, как создать, именно создать пустой TBitmap, чтобы впроследствии на него можно было отрисовать то, что мне нужно средствами GDI+. Примитивный пример
и упираемся в нехватку памяти. Вопрос собственно такой, можно ли создать bitmap не в памяти а на жестком диске, но при этом иметь возможность обратиться к его canvas. Заранее благодарю --------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!! |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 1 Всего: 19 |
Я не понял, а зачем такой большой bitmap? Он же никогда не влезет в экран...
-------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| Antimol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 28.7.2007 Где: Украина, Киев Репутация: нет Всего: 4 |
Похоже что человек будет рисовать карту. Лучше рисовать динамически в зависимости от региона, который показывается
--------------------
Лучшее спасибо это "+" к репутации. Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи.... |
|||
|
||||
| VictorTsaregorodtsev |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 274 Регистрация: 28.7.2006 Репутация: нет Всего: 8 |
Создать можно. Создаете файл нужного размера (размер заголовка плюс размер картинки при том или ином числе битов на пиксел) и пишете в него значения полей заголовочных структур. Структуры эти простые, ВинАПИшные - BITMAP и ещё одна или две (палитра и вроде расширенный заголовок). Обратиться к canvas - нет. Проще рисовать на экранный битмап (или на временный битмап в памяти, совпадающий с размером экрана), а потом копировать построчно содержимое в файл большого битмапа. Смещения в файле для записи построчной информации вычисляются без проблем ;) Или как возможный вариант - сделать наследника от TBitmap, в котором файл будет открываться путём проецирования в память. Т.е. если разобраться с ВинАПИ на минимальном уровне - то проблем нет никаких. Правда, переносимость кода страдает ;) |
|||
|
||||
| gonzales |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 13.3.2006 Репутация: 1 Всего: 2 |
спсибо за ответы, очевидного решения пока не вижу.
вариант "послайсить" изображение не рассматривается, ибо отрисовка идет по всему битмапу, резать его на куски а потом собирать обратно очень не хочется. может еще кто-нибудь что-то предложит ЗЫ.
такие большие битмапы используются в полиграфии, когда разрешение картинки должно составлять не 96 точек, как на экране, а 300, то есть плотность информации возрастает в 3 раза. --------------------
- мастер, мастер, запорол..., все четыре запорол!!!- я ж тебе только три давал!!!???- да я и образец запорол!!!! |
||||
|
|||||
| RomanEEP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 1 Всего: 8 |
метод разбить изображение - самый быстрый, а по скольку GDI+ работает только с памятью других вариантов вроде нет. Только почему вы боитесь этого метода? Там достаточно написать простенький враппер для ф-ций рисования, который определяет на какие элементы изображения попадает фигура, подгружает их с диска и отрисовывает на них её. Если еще и кэш простенький пристроить то и производительность у такого метода будет обалденная.
Добавлено через 3 минуты и вопрос, куда этот большой битмап будет скармливаться? если на принтер, то и туда удобнее передавать изображение кусками, поскольку такой огромный битмап редкая программа прочитает |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 55 Всего: 459 |
gonzales, новая ХЕ2 версия вышла с поддержкой 64х бит. Если нужно работать с картинкой целиком, то вероятно на платформе 64 с памятью проблем быть не должно. И второй вариант, использовать файл отображаемый в память, но опять же в случае платформы 32 может тупо не хватить непрерывных адресов.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Звук, графика и видео" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |