Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Создание картинок с большим разрешением на С# / 25 сообщений из 30, страница 1 из 2
02.09.2013, 16:07
    #38384314
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Доброго дня всем! Есть задача, склеивание тайлов в один большой кусок карты, и нанесением на него линий маркеров и тд. Использую Bitmap, но не получается создать его с большим размером (например 32767х32767), с мелким разрешением работает на ура. Может кто сталкивался с похожей задачей, порекомендуйте альтернативу стандартному Bitmap.
...
Рейтинг: 0 / 0
02.09.2013, 16:50
    #38384388
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
не хилые у вас картинки, память не хватает?
...
Рейтинг: 0 / 0
02.09.2013, 16:59
    #38384400
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Подобный задачи решаются не так в лоб, как у тебя. Результат ренденринга - растр. С кэшированием изображение всех слоев. Плюс нужно еще преобразовывать географическую систему координат к экранной (pipeline), как я понимаю.

Гляди как по уму (Amazon CloundFront и Google Maps):

http://deadlock.org.ua/kit/habr/post/539 На картинке можно увидеть, как исходная карта разбивается на тайлы, тайлы уходят на хранение в S3, а оттуда загружаются в CloudFront и уже из его узлов доставляются пользователям.


P.S. Вообщем, это отдельное направление, нужно хорошо знать предметную область и матчасть. Лично я не имею такого опыта, так что помочь не смогу. Да и без готовых библиотек (всякие там SDK GIS) трудно будет.
...
Рейтинг: 0 / 0
02.09.2013, 16:59
    #38384402
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
даже с включённым флагом на использование больше чем 4гб объекты в 4.5 не фонтан идея,надо как то записывать кусками байтов в файл напрямую.
...
Рейтинг: 0 / 0
02.09.2013, 16:59
    #38384404
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Крутится на блейдах, запас по железу огромный. Склеивание проводится не часто, только когда необходима печать на плоттере, но вот только с Bitmap проблема.
...
Рейтинг: 0 / 0
02.09.2013, 17:00
    #38384408
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
evgeniy214Крутится на блейдах, запас по железу огромный. Склеивание проводится не часто, только когда необходима печать на плоттере, но вот только с Bitmap проблема.
Забудь про Bitmap.
...
Рейтинг: 0 / 0
02.09.2013, 17:03
    #38384413
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
МСУ, все уже реализовано и работает, и кешируется, и координаты преобразовуются, проблема в создании картинки с большим разрешением.
...
Рейтинг: 0 / 0
02.09.2013, 17:05
    #38384415
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
МСУevgeniy214Крутится на блейдах, запас по железу огромный. Склеивание проводится не часто, только когда необходима печать на плоттере, но вот только с Bitmap проблема.
Забудь про Bitmap.

И хочу забыть, нато и тему поднял, есть альтернатива?
...
Рейтинг: 0 / 0
02.09.2013, 17:10
    #38384425
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
handmadeFromRuдаже с включённым флагом на использование больше чем 4гб объекты в 4.5 не фонтан идея,надо как то записывать кусками байтов в файл напрямую.
Дело в том что результирующий фай получаетсе не такой уже и большой (8000х13000 - 40мб)
...
Рейтинг: 0 / 0
02.09.2013, 17:16
    #38384434
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
evgeniy214Дело в том что результирующий фай получаетсе не такой уже и большой (8000х13000 - 40мб)
а подсчитайте в битмапе скока)
http://msdn.microsoft.com/en-us/library/hh285054(v=VS.110).aspx попробуйте
...
Рейтинг: 0 / 0
02.09.2013, 17:23
    #38384448
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
evgeniy214МСУ, все уже реализовано и работает, и кешируется, и координаты преобразовуются, проблема в создании картинки с большим разрешением.
Ха, так это основное, ради чего нужно использовать растры. Вообщем, у тебя тупиковая архитектура.

evgeniy214handmadeFromRuдаже с включённым флагом на использование больше чем 4гб объекты в 4.5 не фонтан идея,надо как то записывать кусками байтов в файл напрямую.
Дело в том что результирующий фай получаетсе не такой уже и большой (8000х13000 - 40мб)
Ты издеваешься? :)
...
Рейтинг: 0 / 0
02.09.2013, 17:23
    #38384450
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Спасибо!!! <gcAllowVeryLargeObjects enabled="true" /> вот чего не хватало у меня.
Завтра протестирую на боевом серваке.
...
Рейтинг: 0 / 0
03.09.2013, 03:47
    #38384846
Абсолют
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Я может, что не понял, но под Bitmap'ом я подразумеваю адовые bmp файлы? Если это так, то почему не jpeg? Он же поменьше будет, вроде.
...
Рейтинг: 0 / 0
03.09.2013, 08:15
    #38384876
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Bitmap, это объект в System.Drawing
...
Рейтинг: 0 / 0
03.09.2013, 08:41
    #38384896
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Проблема не решена вывод был сделан поспешно...
var map = new Bitmap(65535, 65535); выдает ошибку.
...
Рейтинг: 0 / 0
03.09.2013, 08:53
    #38384904
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
А что потом с полученым растровым изображением размером 16 GB планиреутся делать?
...
Рейтинг: 0 / 0
03.09.2013, 08:59
    #38384910
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Народ, вопрос не в том что делать с этим, а как это сделать. Мне не нужно 65535, но не получается и меньше сделать.
...
Рейтинг: 0 / 0
03.09.2013, 09:12
    #38384925
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
evgeniy214,

видишь ли, GDI+ (которое за фасадом Bitmap) имеет ограничения.

Вопрос о том, что делать с полученным изображением - по существу. Формат для начала зависит
...
Рейтинг: 0 / 0
03.09.2013, 09:17
    #38384932
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
После создания он сохраняется в png, jpeg или tiff по выбору юзера, и там размер уже не такой огромный, не в гигабайтах
...
Рейтинг: 0 / 0
03.09.2013, 09:44
    #38384958
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
у вас реально памяти не меряно на машине? к примеру если формат PixelFormat.Format24bppRgb то
даже легкие подсчеты 32767 * 32767 * 24 (bits pr pixel) = 25768230936 bytes ~ 23гб
а если new Bitmap(60000, 60000, PixelFormat.Format1bppIndexed ) то жрет всего то 800мб и работает.
дефолтовый в конструкторе Bitmap PixelFormat32bppARGB, если что.

п.с. не важно что у вас потом файлы мелкие, в Bitmap все валяется без сжатия.
...
Рейтинг: 0 / 0
03.09.2013, 10:06
    #38384987
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Скажу так, на серваке 128Гб ОЗУ (добавляется гипервизором по мере потребления сервером), на нем создаются без проблем 8000х17000 картинки, на моей машине(4 Гб) тоже создаются. Исключение сыпятся не OutMemory... а недопустимый параметр при создании Bitmap
...
Рейтинг: 0 / 0
03.09.2013, 10:06
    #38384988
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
handmadeFromRu,
упс криво подсчитал итоговый размер про new Bitmap(60000, 60000, PixelFormat.Format1bppIndexed).
...
Рейтинг: 0 / 0
03.09.2013, 10:11
    #38384998
handmadeFromRu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
evgeniy214,
да я знаю что сыплется ошибка недопустимый параметр, а ты попробуй формат укажи какой я указал, 1 бит на пиксель и взлетит.
да и проверь доступно ли .net все эта память то? к примеру так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
private static long GetAvailableMemory()
        {
            using (PerformanceCounter perfCounter = new PerformanceCounter("Memory", "Available Bytes"))
            {
                long availableMemory = Convert.ToInt64(perfCounter.NextValue());
                return availableMemory;
            }
        }
...
Рейтинг: 0 / 0
03.09.2013, 10:28
    #38385027
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
Indexed не подходит, Graphics.FromImage() не работает с ним.
...
Рейтинг: 0 / 0
03.09.2013, 10:32
    #38385030
evgeniy214
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание картинок с большим разрешением на С#
по памяти 3681607680
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Создание картинок с большим разрешением на С# / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]