Anonymous | Login | Signup for a new account | 21-11-24 13:10 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0000377 | SAS.Планета | [All Projects] Баг | public | 20-01-2011 03:23 | 10-10-2012 11:50 | ||||
Reporter | Parasite | ||||||||
Assigned To | zed | ||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | Windows | OS | XP | OS Version | SP3 | ||||
Product Version | 110216 | ||||||||
Target Version | 120808 | Fixed in Version | 120808 | ||||||
Summary | 0000377: При попытке сведения в BMP не учитываются лимиты файла | ||||||||
Description | При попытке сведения достаточно большой области в BMP - не учитываются лимиты файла (2Gb). Программа упорно пытается утоптать территорию в файл, коя территория не влезет в максимально возможный BMP даже теоретически. Ну и соответственно падает с еррором I\O 131. Гораздо правильнее было бы предварительно обсчитывать получающийся размер финального BMP, и если результат получается больше 2Gb - то либо предупреждать пользователя (без старта процесса сведения, ибо толку все равно не будет - а будет еррор), либо автоматически разбивать эту область на несколько раздельных BMP и сводить по одному (благо что такая опция в программе есть, осталось только автоматически вставлять туда нужные для данной склейки значения и так и сводить), либо предлагать выбрать какой-либо другой формат файла (не BMP, а например RAW без лимитов по размерам). Про RAW - тут: http://sasgis.org/mantis/view.php?id=295 | ||||||||
Steps To Reproduce | Попытаться склеить в БМП какую-нибудь карту из 30-50тыс тайлов (в один файл)... :) | ||||||||
Tags | bmp, ограничения, склейка | ||||||||
Attached Files | |||||||||
Relationships | ||||||||||||||||
|
Notes | |
(0001586) gpsMax (manager) 07-04-2011 02:26 edited on: 07-04-2011 02:29 |
Бага схожа со 169 в том смысле, что хорошо бы перед началом склейки примерно посчитать результирующий объём, и при превышении лимита формата/памяти, не начиная склейку, сразу отказываться с выдачей сообщения пользователю. |
(0001591) Parasite (administrator) 07-04-2011 05:31 |
>Кстати, лимит в 2 гигабайта на файл присутствует только в FAT32, но не в NTFS. А разве на NTFS живут какие-то другие BMP? :) Бага (данная конкретная) связана не с размером файла на диске, а с переполнением значений в хидере BMP-файла (подробнее - тут: http://en.wikipedia.org/wiki/BMP_file_format) В частности, под размер битмапа выделено 4 байта, то есть ВЕСЬ файл не может превышать 7F FF FF FF байт (2 147 483 647 #dec, где самый старший бит - знаковый в виндявом INTe. Впрочем, даже если бы его не было - лимит был бы уже в 4Гб, а это для битмапа без сжатия - тоже весьма немного). В RAW, господа, в RAW... :) |
(0001595) gpsMax (manager) 07-04-2011 11:02 edited on: 07-04-2011 11:03 |
Про NTFS - я уже понял, что ошибся, и удалил это своё замечание, через минуту после написания :-) |
(0004115) zed (manager) 19-10-2011 18:36 edited on: 19-10-2011 18:42 |
Вот тут http://www.fileformat.info/format/bmp/egff.htm пишут: typedef struct _WinBMPFileHeader { WORD FileType; /* File type, always 4D42h ("BM") */ DWORD FileSize; /* Size of the file in bytes */ WORD Reserved1; /* Always 0 */ WORD Reserved2; /* Always 0 */ DWORD BitmapOffset; /* Starting position of image data in bytes */ } WINBMPFILEHEADER; В этой структуре, под размер файла отведён тип DWORD (беззнаковое, целое). Т.е. лимит у BMP должен быть в 4Гб. И ещё пишут, что Maximum Image Size: 32Kx32K and 2Gx2G pixels, т.е. либо миллиард пикселей, либо 4 Гб. Так что, у кого железо позволяет, попробуйте завтра на ночной сборке создать BMP по-больше, и открыть его чем-нибудь 64-х битным. |
(0004118) Parasite (administrator) 20-10-2011 03:15 |
>Т.е. лимит у BMP должен быть в 4Гб. Вроде vdemidov упоминал именно про 2Гб в винде. Надо посмотреть в хистори. Вопрос не в размере битмапа как таковом - а в предварительном обсчете оного размера и автоматическом разбиении на части, если вылазим за лимиты. К коим лимитам хотелось бы еще приписать и собственно размер одного битмапа по пикселям, а не по байтам - FFFF/FFFF пикс, если селекшн на сведение больше этого размера и именно в бмп - таки придется разбивать в любом случае... PS: что же касалось именно размера - на момент создания тикета программа НЕ СОЗДАВАЛА bmp выше 1.34Gb размером, я специально проверял пытаясь свести большую картинку. Если должно было быть выше 1.34Gb - то тот же еррор i/o 131. Текущие версии - не знаю, не тестил. PPS: а может просто отказаться от bmp? Мороки с ним - много, а толку от него - вообще нет. Хай в ECW сводят, а оттуда если приспичит - можно конвертить в bmp сторонними, более продвинутыми средствами....? Лучше вместо него прикодить BigTiff\geoTiff.... :) |
(0004121) zed (manager) 20-10-2011 05:56 |
>Текущие версии - не знаю, не тестил А ты потести. Там и проверка стоит и большие bmp нормально создаются. |
(0004122) bk99 (reporter) 20-10-2011 06:35 |
>Текущие версии - не знаю, не тестил Народ ждёт стэйбл... Тогда и непоняток меньше будет. |
(0004123) zed (manager) 20-10-2011 06:36 |
Чтоб появился стэйбл, нужно оттестить и пофиксить баги у ночнушек. |
Issue History | |||
Date Modified | Username | Field | Change |
20-01-2011 03:23 | Parasite | New Issue | |
10-03-2011 21:09 | vdemidov | Status | new => acknowledged |
10-03-2011 21:10 | vdemidov | Product Version | => 110216 |
10-03-2011 21:10 | vdemidov | Target Version | => 26xxxx |
11-03-2011 07:23 | gpsMax | Tag Attached: склейка | |
11-03-2011 07:23 | gpsMax | Tag Attached: bmp | |
07-04-2011 02:22 | gpsMax | Relationship added | related to 0000169 |
07-04-2011 02:26 | gpsMax | Note Added: 0001586 | |
07-04-2011 02:26 | gpsMax | Note Added: 0001587 | |
07-04-2011 02:27 | gpsMax | Note Deleted: 0001587 | |
07-04-2011 02:28 | gpsMax | Note Edited: 0001586 | View Revisions |
07-04-2011 02:29 | gpsMax | Note Edited: 0001586 | View Revisions |
07-04-2011 05:31 | Parasite | Note Added: 0001591 | |
07-04-2011 11:02 | gpsMax | Note Added: 0001595 | |
07-04-2011 11:03 | gpsMax | Note Edited: 0001595 | View Revisions |
09-04-2011 14:33 | gpsMax | Tag Attached: ограничения | |
11-04-2011 07:10 | vdemidov | Status | acknowledged => confirmed |
19-10-2011 18:36 | zed | Note Added: 0004115 | |
19-10-2011 18:42 | zed | Note Edited: 0004115 | View Revisions |
20-10-2011 03:15 | Parasite | Note Added: 0004118 | |
20-10-2011 03:57 | gpsMax | Relationship added | related to 0001014 |
20-10-2011 05:56 | zed | Note Added: 0004121 | |
20-10-2011 06:35 | bk99 | Note Added: 0004122 | |
20-10-2011 06:36 | zed | Note Added: 0004123 | |
18-12-2011 16:44 | zed | Assigned To | => zed |
18-12-2011 16:44 | zed | Status | confirmed => feedback |
03-01-2012 10:44 | zed | Status | feedback => resolved |
03-01-2012 10:44 | zed | Fixed in Version | => 24xxxx |
03-01-2012 10:44 | zed | Resolution | open => fixed |
23-01-2012 08:22 | vdemidov | Fixed in Version | 24xxxx => 120808 |
23-01-2012 08:22 | vdemidov | Target Version | 26xxxx => 120808 |
22-03-2012 08:23 | gpsMax | Relationship added | related to 0001213 |
10-10-2012 11:50 | Tolik | Status | resolved => closed |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |