Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TBitmap (width height)


olegnik ©   (2007-02-12 11:06:00) 

Вопрос следующий :
Необходимо создать изображение которое я считываю не важно от куда. Вопрос я бы сказал даже не в этом.
BitMap : TBitMap;
BitMap := TBitmap.Create;
{ -а здесь  самое интересное- }
BitMap.Width := 20000;
BitMap.Height := 7000;
{ - выдает ошибку на недостаток памяти- }
Хотя при этом  создаю  *.bmp  аналогичных размеров
и нормально загружаю через
BitMap.LoadFromFile(OpenDialog.FileName);
Image1.Picture.Assign(BitMap);
Подскажите как поступить, при том что мне самому надо создать *.bmp файл  (а до этого мно поработать с BitMap).


Vovan # 2   (2007-02-12 23:18:00) [1]

>На разрешение то это как сказываеться?

Устройством этим является по сути видеокарта. Это значит, что мы можем сделать безопасное предположениео том, что битмап размером как десктоп и такой же цветовой глубины - допустим.


@!!ex   (2007-02-12 22:29:00) [2]


> Vovan # 2   (12.02.07 19:44) [10]

На разрешение то это как сказываеться?


Vovan # 2   (2007-02-12 19:44:00) [3]

> Либо я чего не догоняю, либо бред...
Всегда наивно полагал, что PixelFormat - это количество бит на пиксель, а оказываеться оно както связано с разрешением....


О своём количестве бит на пиксель может говорить только независимый от устройства битмап.


@!!ex   (2007-02-12 17:47:00) [4]


> по умолчанию BitMap.PixelFormat = pfDevice, по этому не
> может быть больше экрана. Делай так
>
> BitMap := TBitmap.Create;
> BitMap.PixelFormat =  pf24bit; // например

Либо я чего не догоняю, либо бред...
Всегда наивно полагал, что PixelFormat - это количество бит на пиксель, а оказываеться оно както связано с разрешением....


icWasya   (2007-02-12 16:47:00) [5]

по умолчанию BitMap.PixelFormat = pfDevice, по этому не может быть больше экрана. Делай так

BitMap := TBitmap.Create;
BitMap.PixelFormat =  pf24bit; // например


@!!ex   (2007-02-12 14:12:00) [6]


> olegnik   (12.02.07 12:53) [5]

Так создай пустое изображение нужных размеров, грузи его и вуаля. :)))

Напиши свой аналог TBitMap c нужной функциональностью, благо формат крайне простой и написать ниче не стоит. Пол дня работы.


MBo   (2007-02-12 14:10:00) [7]

В Windows есть ограничения на размер строки битмапа и на размер всего битмапа. Эти ограничения различаются для Win9X и для NT-систем.
Кроме того, ограничения сильнее для DDB-битмапов, так что можно создавать DIB-битмап бОльших размеров, указав после создания нужный PixelFormat (что приводит к изменению HandleType)


olegnik   (2007-02-12 12:53:00) [8]

Я поделился своими наблюдениями для того что бы констатировать что BMP файл больших размеров можно загрузить.Это к тому.

> К тому же, ты считал сколько он будет весить в оперативе?
>
> 1 bit - 17 mb
> 8 bit - 134 mb
> 24 bit - 400 mb


а вот как поступить если при чтении чего то задана W H объекта. Ну в течении работы что то изменяется и мне необходмо будет подправит нужый пиксель.

> BitMap.LoadFromFile(OpenDialog.FileName) установит BitMap-
> у те width и height, что записаны в файле, поэтому устанавливать
> их нет нужды.


Может  я не внятно  что то  изложил но вопрос не стоит что я не могу загрузить изображение больших размеров. Я не могу создать приемник нужных размеров.


<Efir>   (2007-02-12 12:29:00) [9]


> olegnik   (12.02.07 12:04) [2]


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

К тому же, ты считал сколько он будет весить в оперативе?
1 bit - 17 mb
8 bit - 134 mb
24 bit - 400 mb

Поэтому и вопрос был - нафига?


ЮЮ   (2007-02-12 12:08:00) [10]

BitMap.LoadFromFile(OpenDialog.FileName) установит BitMap-у те width и height, что записаны в файле, поэтому устанавливать их нет нужды.


Хотя при этом  создаю  *.bmp  аналогичных размеров
и нормально загружаю через

а 2 сразу таким образом в памяти удержишь?


olegnik   (2007-02-12 12:04:00) [11]

<Efir>  А зачем тебе такой большой Bitmap?
Достойный ответ. И не совсем понятно зачем вопрос был переносить может, нашелся бы оден толковый человек который бы на него ответил.
 А зачем тебе такой большой Bitmap?
 А видимо затем.


&lt;Efir&gt;   (2007-02-12 11:12:00) [12]

А зачем тебе такой большой Bitmap?


Наверх

Титульная страница Поиск, карта сайта Написать письмо