Bitmap огромных размеров
От: Аноним  
Дата: 24.07.06 14:32
Оценка:
Задача следующая: Создать файл с большим разрешением(примерно 32000х20000, иначе мелкие детали рисунка не видны) на С#

Делаю след.образом:
Bitmap b = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format16bppRgb555), тем самым задаю формат пикселей. При перемножении width*height*16 бит -> огромный файл и привет... не хватает памяти. Этим способом удалось создать файл вдвое меньшего размера чем требуется.
Мне достаточно было бы 8 бит на пиксел, но в подмножетстве PixelFormat те форматы, что по 8 бит индексированные и GDI+ c ними не работает!!!

Что делать??? Какие есть еще способы создания файла огромных размеров на С#?
Если кто подскажет, большое ему спасибо!
Re: Bitmap огромных размеров
От: nikov США http://www.linkedin.com/in/nikov
Дата: 24.07.06 14:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что делать??? Какие есть еще способы создания файла огромных размеров на С#?


Разбейте на прямоугольные области и создавайте по кусочкам.
Re: Bitmap огромных размеров
От: mihasic Украина  
Дата: 24.07.06 14:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Задача следующая: Создать файл с большим разрешением(примерно 32000х20000, иначе мелкие детали рисунка не видны) на С#


А>Делаю след.образом:

А>Bitmap b = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format16bppRgb555), тем самым задаю формат пикселей. При перемножении width*height*16 бит -> огромный файл и привет... не хватает памяти. Этим способом удалось создать файл вдвое меньшего размера чем требуется.
А>Мне достаточно было бы 8 бит на пиксел, но в подмножетстве PixelFormat те форматы, что по 8 бит индексированные и GDI+ c ними не работает!!!

А>Что делать??? Какие есть еще способы создания файла огромных размеров на С#?

А>Если кто подскажет, большое ему спасибо!

Единственное что приходит в голову — разбить на куски и подгружать по мере необходимости...
Re[2]: Bitmap огромных размеров
От: Kingston  
Дата: 24.07.06 17:44
Оценка:
Здравствуйте, nikov, Вы писали:

N>Здравствуйте, Аноним, Вы писали:


А>>Что делать??? Какие есть еще способы создания файла огромных размеров на С#?


N>Разбейте на прямоугольные области и создавайте по кусочкам.


Thanks! Но к сожалению это не метод в моем случае... Отрисовываю это все на панели (panel), тут размер не проблема... Но вот сохранить без bitmap не знаю как (((
Другие идеи???
Re[3]: Bitmap огромных размеров
От: HotDog Швейцария www.denebspace.com
Дата: 25.07.06 06:42
Оценка:
Здравствуйте, Kingston, Вы писали:

K>Другие идеи???


Перейти на 64 битную виндовс.
Re[3]: Bitmap огромных размеров
От: Cronium  
Дата: 25.07.06 07:27
Оценка: +1
Здравствуйте, Kingston, Вы писали:

K>Здравствуйте, nikov, Вы писали:


N>>Здравствуйте, Аноним, Вы писали:


А>>>Что делать??? Какие есть еще способы создания файла огромных размеров на С#?


N>>Разбейте на прямоугольные области и создавайте по кусочкам.


K>Thanks! Но к сожалению это не метод в моем случае... Отрисовываю это все на панели (panel), тут размер не проблема... Но вот сохранить без bitmap не знаю как (((

K>Другие идеи???

В бмп формат сохранять очень легко — прочитай про него, там все ясно. Если тебе нужен jpeg, тогда не знаю.
Re: Bitmap огромных размеров
От: vladserge Россия  
Дата: 25.07.06 08:20
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что делать??? Какие есть еще способы создания файла огромных размеров на С#?

А>Если кто подскажет, большое ему спасибо!

а может посмотреть в другую сторону здесь
С Уважением Сергей Чикирев
Re[4]: Bitmap огромных размеров
От: GlebZ Россия  
Дата: 25.07.06 08:37
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Перейти на 64 битную виндовс.

Здоровски. 64-битная виндовс дополнительные димы эмулирует?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Bitmap огромных размеров
От: GlebZ Россия  
Дата: 25.07.06 08:39
Оценка: +1
Здравствуйте, <Аноним>, Вы писали:

А>Задача следующая: Создать файл с большим разрешением(примерно 32000х20000, иначе мелкие детали рисунка не видны) на С#

здесь
GDI+ — это ширпотреб для общественных нужд. В данном случае нужна специализированная библиотека.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Bitmap огромных размеров
От: HotDog Швейцария www.denebspace.com
Дата: 25.07.06 09:35
Оценка:
Здравствуйте, GlebZ, Вы писали:

HD>>Перейти на 64 битную виндовс.

GZ>Здоровски. 64-битная виндовс дополнительные димы эмулирует?

64-битная виндовс не имеет 2Gb ограничения на размер выделенной памяти для приложения.
Что позволяет работать с изображениями такого размера. По крайней мере GDI+ нормально "переваривает" такие картинки.
Re[6]: Bitmap огромных размеров
От: GlebZ Россия  
Дата: 25.07.06 09:46
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>64-битная виндовс не имеет 2Gb ограничения на размер выделенной памяти для приложения.

32000*20000*2=1,280,000,000.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Bitmap огромных размеров
От: Igor Trofimov  
Дата: 25.07.06 10:58
Оценка:
HD>64-битная виндовс не имеет 2Gb ограничения на размер выделенной памяти для приложения.
HD>Что позволяет работать с изображениями такого размера. По крайней мере GDI+ нормально "переваривает" такие картинки.

Да... хорошо, что создатели Google Earth не пошли по такому пути
Re[7]: Bitmap огромных размеров
От: HotDog Швейцария www.denebspace.com
Дата: 25.07.06 11:35
Оценка:
Здравствуйте, GlebZ, Вы писали:

HD>>64-битная виндовс не имеет 2Gb ограничения на размер выделенной памяти для приложения.

GZ>32000*20000*2=1,280,000,000.

Ну ты ради интереса, возьми и открой jpeg размером 1000x1000.
Я тебя уверяю, что твое приложение откушает больше чем 1000х1000х3 байт
Re[7]: Bitmap огромных размеров
От: HotDog Швейцария www.denebspace.com
Дата: 25.07.06 11:37
Оценка:
Здравствуйте, Igor Trofimov, Вы писали:

iT>Да... хорошо, что создатели Google Earth не пошли по такому пути


Честно говоря, я тоже не представляю, что с таким битмапом делать можно.
Но вопрос был "Что делать?" а не "Как?" Поэтому я предложил этот вариант
Re[8]: Bitmap огромных размеров
От: GlebZ Россия  
Дата: 25.07.06 11:55
Оценка:
Здравствуйте, HotDog, Вы писали:

HD>Ну ты ради интереса, возьми и открой jpeg размером 1000x1000.

HD>Я тебя уверяю, что твое приложение откушает больше чем 1000х1000х3 байт
Веришь нет, но Windows picture при открытии примерно плюсует именно эту цифру. Только 1000x1000x4 байт. Он 32 битный.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Bitmap огромных размеров
От: Аноним  
Дата: 25.07.06 11:55
Оценка:
>>Да... хорошо, что создатели Google Earth не пошли по такому пути

Да НИКТО не идет по ТАКОМУ пути. Все, всегда и везде режут на куски и подгружают по мере необходимости. Всё равно столько пикселей на экране отобразить невозможно физически. Таких экранов еще не придумали.

How can men die better than facing fearful odds,
For the ashes of their fathers and the temples of their gods?

| Мой Brainbench | BookReader 1.1 | Wallpaper Cycler |


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[8]: Bitmap огромных размеров
От: HotDog Швейцария www.denebspace.com
Дата: 25.07.06 13:39
Оценка:
BTA>Да НИКТО не идет по ТАКОМУ пути. Все, всегда и везде режут на куски и подгружают по мере необходимости. Всё равно столько пикселей на экране отобразить невозможно физически. Таких экранов еще не придумали.

Ну раз уж такая пьянка пошла и мы свалились в полный офтопик...
Представь себе, что тебе надо напечатать плакат A0 с разрешением в 300 DPI (если покажется мало, то возьми 600 DPI для оффсетной печати). И нужно напечатать не текст или векторную графику, а обычный растер (фото), то примерно в таких диапазонах и прыгают размеры.

PS. Еще раз, для тех кто любит поспорить... Я НЕ АВТОР вопроса. Я просто обьяснил, каким образом в GDI+ можно работать с изображениями большого размера
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.