![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
Начинаю увеличивать размер TImage.Bitmap -а.
С какого-то (большого ~30000) значения размеров происходит срыв ( выдается Exeption с сообщением о нехватке места хранения) - что вполне логично. Кто-нибудь в курсе, как можно опросить систему о значении ограничения размеров TImage.Bitmap-а ? ... И вообще, есть ли такие константы? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Это значит, что мы можем загрузить до 4-х гигабайт. Как раз хватит на картинку 32768х32768 пихелей (32 бита), или 46341х46341 (16 бит), или 65536х65536 (8 бит), или ...... Отсюда вопрос: Что имелось ввиду под "размером изображения"? И когда происходит ошибка? При назначении размеров битмапа или при изменении размеров изображения в нем? Это сообщение отредактировал(а) Snowy - 12.1.2005, 10:58 |
|||
|
||||
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
"размером изображения" - это
Image.Bitmap.Width и Image.Bitmap.Heigth (или Image.Width и Image.Heigth) а ошыбка выдается , когда увеличиваю Image.Bitmap.Width и Image.Bitmap.Heigth (или Image.Width и Image.Heigth ) |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
То есть Height=Weight или необязательно? Просто ты написал, что размер ~30000. Вот и непонятно к чему эти ~30000 относятся.
Ну, как я писал выше, если картинка у тебя 32 бита, то выше разрешения 32768х32768 пихелей не прыгнешь. Ограничение винды. Любой. И зависит не от системы, а от разрешения и глубины цвета. Вобщем максимум, который ты можешь запихать в TBitmap (и прочие родственные вещи): (Height * Width) * bits div 8 <= 4294967296 //(4Gb) где bits - глубина цвета картинки. Это сообщение отредактировал(а) Snowy - 12.1.2005, 13:51 |
|||
|
||||
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
А что означает глубина цвета картинки ???
Это BITMAPINFOHEADER.biBitCount ? |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Ну получить доступ к этой структуре будет затруднительно. Delphi ее использует, т.к. это структура виндов, но доступа к ней не дает. Использует только для отрисовки. А сам TBitmap может дать информацию, но в несколько неудобном виде.
Почитай про Tbitmap.TPixelFormat Очень неудобно, но другого спозоба я не знаю. Могет он где-то и есть, но я не в курсе. Кроме того есть у меня такое подозрение, что на экран оно будет рисоваться не с битностью рисунка, а в зависимости от разрешения рабочего стола. Но это только предположение. Просто прими битность за 32 по уолчанию и не заморачивайся. Упрощаем: (Height * Width) * 4 <= 4294967296 //(4Gb) Это сообщение отредактировал(а) Snowy - 12.1.2005, 15:21 |
|||
|
||||
| Sharl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 16.8.2003 Репутация: нет Всего: нет |
Ok.
Snowy, Спасибо. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |