SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002393SAS.Планета[All Projects] Багpublic30-03-2014 07:4831-03-2014 18:43
Reportergma 
Assigned To 
PrioritylowSeverityminorReproducibilityalways
StatusconfirmedResolutionopen 
PlatformWindowsOSVistaOS VersionHome Basic
Product Version131111 
Target Version29xxxxFixed in Version 
Summary0002393: Определение цвета прозрачности при генерировании тайлов
DescriptionСоздаю меньший слой из большего. В исходнике 8-битный PNG с alfa-каналом (т.е. с прозрачными полями) на выходе получаю 24 бит с дополнительным серым полем вместо прозрачности. Исхдники: ...\z15\9565\20752.png, 20753.png, ...\z15\9566\20752.png, 20753.png...
Результат: ...\z14\4832\10376.png
Похоже, Планета зачем-то подставляет поверх прозрачности плашку фона (у меня стоит silver), дополняя тайл до размерности 256, что при последующей склейке граничных тайлов может помешать.
Дополнительное неудобство создаётся появлением 24-битных файлов, которые приходится дополнительно конвертировать обратно в индекс. Отсюда происходит хотелка, чтобы Планета умела создавать сжатые индексированные PNG как при тайловой генерации, так и при склейке карт.
TagsNo tags attached.
Attached Fileszip file icon png.zip [^] (57,249 bytes) 30-03-2014 07:48

- Relationships

-  Notes
(0014060)
zed (manager)
30-03-2014 16:42

Чтобы определить цвет прозрачности, придётся анализировать все пиксели сгенерированного тайла на предмет их прозрачности, что сильно замедлит весь процесс. К тому же, для jpeg, к примеру, это будет вообще пустая трата времени.

Как вариант, на эту вкладку можно добавить поле выбора цвета фона, который и использовать для генерирования тайлов. Прозрачным обычно делается белый или чёрный цвет, так что должно помочь.
(0014061)
zed (manager)
30-03-2014 16:46

> на выходе получаю 24 бит
На выходе у вас получаются 32-х битные png.
(0014078)
vdemidov (manager)
31-03-2014 09:21

ИМХО параметры сохранения генерируемых тайлов нужно задавать в параметрах операции. Для jpg - степень сжатия, для png наличие прозрачности и тип (палитра или нет).
(0014081)
gma (reporter)
31-03-2014 15:58

Заголовок, по-моему, не совсем верен -- у прозрачности нет цвета, более того, А-канал это вообще не цвет, это его отсутствие. http://ru.wikipedia.org/wiki/%C0%EB%FC%F4%E0-%EA%E0%ED%E0%EB.
"На выходе у вас получаются 32-х битные png" -- в любом случае, это в разы больше входного файла, который индекс (max 256 цветов) с А-каналом. Приходится после генерации соседних слоёв использовать внешний конвертер. Ладно бы я склеивал карту -- она одна, хотя и там лишнее время и лишняя операция, а переделывать сотни тыщщ тайлов -- это на сутки машинного удовольствия.
(0014082)
zed (manager)
31-03-2014 17:14
edited on: 31-03-2014 17:15

> у прозрачности нет цвета
Это для конечного пользователя его нет, а в машинном понимании он есть. Ведь фон-то нужно залить какими-то байтами. Вот и заливают его однородным цветом и устанавливают ему абсолютную прозрачность. И если вы попробуете открыть такой файл в программе, не поддерживающей прозрачность, то увидите этот фон своими глазами. Вот и выходит, что чтобы залить фон правильным цветом, нужно проанализировать пиксели сгенерированного тайла, найти пиксели с абсолютной прозрачностью, взять их цвет (а он будет для всех одинаковый, поэтому достаточно первого попавшегося пикселя) и залить этим цветом пустующее пространство.

> в любом случае, это в разы больше входного файла
Только это уже не баг, а хотелка. А в этом тикете обсуждение за баг.

(0014089)
gma (reporter)
31-03-2014 18:37
edited on: 01-04-2014 08:22

"Только это уже не баг, а хотелка" -- Я оформлял её как хотелку, но её прикрыли, не сильно разбираясь. Могу оформить как баг, если есть желание. Собственно от оформления мало что меняется -- есть проблема и хочется, чтобы она была решена.

(0014090)
zed (manager)
31-03-2014 18:42

> но её прикрыли, на сильно разбираясь
Если вы про 0002329, то хотелка закрыта как дубль вот этой: 0001410

> есть проблема и хочется, чтобы она была решена
Да, но не нужно мешать несколько проблем в одну кучу. Одна проблема, один тикет. Прозрачность - один тикет, 8 бит - другой.
(0014091)
gma (reporter)
31-03-2014 18:43

"нужно проанализировать пиксели сгенерированного тайла, найти пиксели с абсолютной прозрачностью, взять их цвет" -- можно ли ( в машинном понимании) сделать проще -- взять первый попавшийся цвет (в моём случае цвет фона: 192 х 3) и сделать его прозрачным? И не надо ничего анализировать...

- Users who viewed this issue
User List Anonymous (2492x), vdemidov (6x)
Total Views 2498
Last View 22-11-2024 05:35

- Issue History
Date Modified Username Field Change
30-03-2014 07:48 gma New Issue
30-03-2014 07:48 gma File Added: png.zip
30-03-2014 09:05 vdemidov Priority normal => low
30-03-2014 09:05 vdemidov Status new => confirmed
30-03-2014 09:05 vdemidov Product Version .Nightly => 131111
30-03-2014 09:05 vdemidov Target Version => 29xxxx
30-03-2014 16:42 zed Note Added: 0014060
30-03-2014 16:45 zed Summary Лишний цвет на сгенерированном тайле, генерация 24битPNG из 8битPNG => Определение цвета прозрачности при генерировании тайлов
30-03-2014 16:46 zed Note Added: 0014061
31-03-2014 09:21 vdemidov Note Added: 0014078
31-03-2014 15:58 gma Note Added: 0014081
31-03-2014 17:14 zed Note Added: 0014082
31-03-2014 17:15 zed Note Edited: 0014082 View Revisions
31-03-2014 18:37 gma Note Added: 0014089
31-03-2014 18:42 zed Note Added: 0014090
31-03-2014 18:43 gma Note Added: 0014091
01-04-2014 08:22 gma Note Edited: 0014089 View Revisions



Copyright © 2007 - 2024 SAS.Planet Team