SASGIS - SAS.Планета |
View Issue Details |
|
ID | Project | Category | View Status | Date Submitted | Last Update |
0001953 | SAS.Планета | [All Projects] Баг | public | 10-06-2013 08:56 | 10-06-2016 18:50 |
|
Reporter | TEBS-S | |
Assigned To | zed | |
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | |
Platform | Windows | OS | 7 | OS Version | Ultimate |
Product Version | 120808 | |
Target Version | 160707 | Fixed in Version | 160707 | |
|
Summary | 0001953: Нет прозрачности у png тайлов с 24 битным цветом |
Description | Используется свой собственный слой для карты. Используемый формат - png. В версиях 11-го года прозрачность png рисуется корректно, в версиях 12-го года (120808 и 121010), а также в SAS.Planet.Nightly.130610.7271.7z прозрачность файлов становиться белой непрозрачной, что закрывает основную карту. |
Steps To Reproduce | |
Additional Information | |
Tags | png, SAS Cache Manager, прозрачность, слои |
Relationships | parent of | 0003053 | resolved | zed | Обновить библиотеку FreeImage до версии 3.17 |
|
Attached Files | sas_ok_110216.png (392,580) 10-06-2013 08:56 https://bugtracker.sasgis.org/file_download.php?file_id=1375&type=bug sas_bad_121010.png (98,895) 10-06-2013 08:56 https://bugtracker.sasgis.org/file_download.php?file_id=1376&type=bug
y2758.png (1,663) 10-06-2013 08:57 https://bugtracker.sasgis.org/file_download.php?file_id=1377&type=bug
y2759.png (1,505) 10-06-2013 08:57 https://bugtracker.sasgis.org/file_download.php?file_id=1378&type=bug
Png.zmp.7z (2,051) 10-06-2013 10:13 https://bugtracker.sasgis.org/file_download.php?file_id=1379&type=bug map.php_new (12,595) 10-06-2013 11:48 https://bugtracker.sasgis.org/file_download.php?file_id=1382&type=bug map.php_old (12,137) 10-06-2013 11:49 https://bugtracker.sasgis.org/file_download.php?file_id=1383&type=bug |
|
Issue History |
Date Modified | Username | Field | Change |
10-06-2013 08:56 | TEBS-S | New Issue | |
10-06-2013 08:56 | TEBS-S | File Added: sas_ok_110216.png | |
10-06-2013 08:56 | TEBS-S | File Added: sas_bad_121010.png | |
10-06-2013 08:57 | TEBS-S | File Added: y2758.png | |
10-06-2013 08:57 | TEBS-S | File Added: y2759.png | |
10-06-2013 08:58 | TEBS-S | Note Added: 0011591 | |
10-06-2013 09:00 | TEBS-S | Tag Attached: прозрачность | |
10-06-2013 09:00 | TEBS-S | Tag Attached: png | |
10-06-2013 09:01 | TEBS-S | Tag Attached: слои | |
10-06-2013 09:42 | zed | Note Added: 0011595 | |
10-06-2013 09:53 | vasketsov | Note Added: 0011599 | |
10-06-2013 09:59 | TEBS-S | Note Added: 0011600 | |
10-06-2013 10:09 | vasketsov | Note Added: 0011602 | |
10-06-2013 10:12 | TEBS-S | Note Edited: 0011600 | bug_revision_view_page.php?bugnote_id=11600#r5443 |
10-06-2013 10:13 | zed | Note Added: 0011603 | |
10-06-2013 10:13 | TEBS-S | File Added: Png.zmp.7z | |
10-06-2013 10:14 | TEBS-S | Note Added: 0011604 | |
10-06-2013 10:21 | zed | Note Added: 0011605 | |
10-06-2013 10:22 | zed | Note Added: 0011606 | |
10-06-2013 10:33 | TEBS-S | Note Added: 0011608 | |
10-06-2013 10:38 | vdemidov | Note Added: 0011610 | |
10-06-2013 10:38 | TEBS-S | Note Added: 0011611 | |
10-06-2013 10:41 | vdemidov | Note Added: 0011612 | |
10-06-2013 10:53 | zed | Note Added: 0011613 | |
10-06-2013 11:27 | TEBS-S | Note Added: 0011614 | |
10-06-2013 11:28 | TEBS-S | Note Added: 0011615 | |
10-06-2013 11:28 | TEBS-S | File Added: map.php_old | |
10-06-2013 11:28 | TEBS-S | File Added: map.php_new | |
10-06-2013 11:33 | TEBS-S | Note Deleted: 0011615 | |
10-06-2013 11:34 | TEBS-S | Note Added: 0011616 | |
10-06-2013 11:44 | vdemidov | File Deleted: map.php_new | |
10-06-2013 11:46 | zed | File Deleted: map.php_old | |
10-06-2013 11:48 | TEBS-S | File Added: map.php_new | |
10-06-2013 11:48 | TEBS-S | Note Added: 0011617 | |
10-06-2013 11:49 | TEBS-S | File Added: map.php_old | |
10-06-2013 11:55 | zed | Note Added: 0011618 | |
10-06-2013 11:57 | vdemidov | Note Added: 0011619 | |
10-06-2013 12:01 | zed | Note Added: 0011620 | |
10-06-2013 12:01 | TEBS-S | Note Added: 0011621 | |
10-06-2013 12:08 | TEBS-S | Note Added: 0011622 | |
10-06-2013 12:08 | TEBS-S | Note Edited: 0011614 | bug_revision_view_page.php?bugnote_id=11614#r5445 |
10-06-2013 12:09 | TEBS-S | Tag Attached: SAS Cache Manager | |
10-06-2013 19:35 | vdemidov | Status | new => confirmed |
10-06-2013 19:35 | vdemidov | Product Version | 121010 => 120808 |
10-06-2013 19:35 | vdemidov | Target Version | => 29xxxx |
10-06-2013 19:35 | vdemidov | Summary | Нет прозрачности у png слоя => Нет прозрачности у png тайлов с 24 битным цветом |
05-11-2014 16:50 | zed | Note Added: 0014856 | |
16-03-2015 11:24 | zed | Note Added: 0015417 | |
16-03-2015 11:26 | vdemidov | Note Added: 0015418 | |
16-03-2015 11:28 | zed | Note Added: 0015419 | |
16-03-2015 11:33 | vdemidov | Note Added: 0015420 | |
10-06-2016 16:43 | zed | Relationship added | parent of 0003053 |
10-06-2016 16:54 | zed | Target Version | 29xxxx => 160707 |
10-06-2016 16:54 | zed | Assigned To | => zed |
10-06-2016 16:54 | zed | Status | confirmed => assigned |
10-06-2016 18:50 | zed | Note Added: 0017334 | |
10-06-2016 18:50 | zed | Status | assigned => resolved |
10-06-2016 18:50 | zed | Fixed in Version | => 160707 |
10-06-2016 18:50 | zed | Resolution | open => fixed |
Notes |
|
(0011591)
|
TEBS-S
|
10-06-2013 08:58
|
|
Во вложении скриншот со старой и новой версией Sas планеты. А также кусок кэша. |
|
|
(0011595)
|
zed
|
10-06-2013 09:42
|
|
Чем особенным отличается ваш png от того же гугло-гибрида? |
|
|
|
Существует куча слоёв, работающих в сасе вот хоть прямо сейчас, реализованных на прозрачных PNG:
1. Это и обычные гибриды типа яндекса и гугла, грузящиеся по одному тайлу и не модифицируемые сасом.
2. Это и мегатайловые гибриды типа слоя кадастровых границ росреестра, которые сас отлично качает хоть даже 4x4 и сам режет на тайлы, не нарушая прозрачности png.
Итого: если и есть где-то проблема в сасе с прозрачностью png, то она не на поверхности. Нельзя просто так взять и сказать, что в сасе нет прозрачности у png слоя. |
|
|
(0011600)
|
TEBS-S
|
10-06-2013 09:59
(edited on: 10-06-2013 10:12) |
|
Я не знаком глубоко с архитектурой Сас, потому не готов вступить в полемику где же есть проблема в коде и в какой строке :) Я нашел неприятный, как минимум для меня, баг. Постарался изначально максимально "поиграться" с настройками чтобы избежать проблемы, но не смог. Мой PNG теоретически ничем не должен отличаться, к тому же в версия до 2012 года все работает на ура. Да, и я забыл указать, что png генерируется через SAS Cache Manager. Может что-то надо изменить в настройках и/или генераторе картинок?
|
|
|
|
Имеет смысл ещё приаттачить zmp |
|
|
(0011603)
|
zed
|
10-06-2013 10:13
|
|
>Да, и я забыл указать, что png генерируется через SAS Cache Manager
Насколько я понимаю, он генерируется на сервере. Либо лежит уже сгенерированный, там же. |
|
|
(0011604)
|
TEBS-S
|
10-06-2013 10:14
|
|
> Насколько я понимаю, он генерируется на сервере. Либо лежит уже сгенерированный, там же.
Генерируется на сервере под каждый запрос. |
|
|
(0011605)
|
zed
|
10-06-2013 10:21
|
|
Фотошоп, кстати, тоже не понимает прозрачность в вашем png... Какая-то беда с маской альфа-канала или ещё чем. |
|
|
(0011606)
|
zed
|
10-06-2013 10:22
|
|
>Генерируется на сервере под каждый запрос.
Ну вот может там и подправить параметры-то? |
|
|
(0011608)
|
TEBS-S
|
10-06-2013 10:33
|
|
> Фотошоп, кстати, тоже не понимает прозрачность в вашем png... Какая-то беда с маской альфа-канала или ещё чем.
Фотошопом не обладаю, но все программы, которыми я открывал это png понимали. Спасибо за наводку, поковыряюсь в php |
|
|
|
На первый взгляд png валидный. Нужно изучать в чем проблема. |
|
|
(0011611)
|
TEBS-S
|
10-06-2013 10:38
|
|
Ну и повторюсь, в версиях до 120808 прозрачность прозрачна. Возможно у вас изменялся модуль какой, отвечающий за работу с png. Если да, то может подскажите что именно изменилось, дабы не перелопачивать все подряд, а изменить только необходимое |
|
|
|
Поменялась библиотека отвечающая за чтение графических форматов. |
|
|
(0011613)
|
zed
|
10-06-2013 10:53
|
|
Ну, если говорить про библиотеку, то она может накосячить в функции ConvertTo32Bits. У проблемного png 24 бита и возможно такие png априори считаются без прозрачности. |
|
|
(0011614)
|
TEBS-S
|
10-06-2013 11:27
(edited on: 10-06-2013 12:08) |
|
Спасибо за указание по 32-24 бита. Пришлось поковырять php на эту тему. Если интересно, то я прикладываю старый и новы map.php из SAS Cache Manager. Также вопрос, могу ли я как-то изменить архив на вашем сайте на странице http://goo.gl/2HuqY для избежания моих проблем другими пользователями?
|
|
|
(0011616)
|
TEBS-S
|
10-06-2013 11:34
|
|
Прозрачность исправил, в другом накосячил :) Удалите пока map.php_new дабы не вводить в заблуждение ползователей |
|
|
(0011617)
|
TEBS-S
|
10-06-2013 11:48
|
|
Исправленный php залил. Можно закрывать кейс, спасибо |
|
|
(0011618)
|
zed
|
10-06-2013 11:55
|
|
Упс, и я что-то удалил, не посмотревши :)
По поводу бага - это недоработка в библиотеке: 24bit png with binary transparency
Of the three Color Types which can have a "tRNS" chunk, i.e. Color Type 0, 2 & 3, "0" & "2" are not covered by FreeImage currently.
(1) FreeImage does not detect transparency in RGB PNG (i.e. PNG Color Type 2),
of 24-BPP or 48 BPP. Transparent color is a 6-byte value in file.
(2) FreeImage also does not detect transparency in Grayscale PNG (i.e. PNG
Color Type 0), of various Bit Depth. Transparent color is a 2-byte value in
file.
(3) What FreeImage has currently covered in binary version 3.14.1 is PNG Color
Type 3 only.
У ваших png прозрачность задавалась через тэг tRNS, и соответственно ColorType=2. Так что либо делать 32-х битные, либо 8-битные.
В следующих версия либы (она обычно раз/два в год обновляется), ситуация возможно изменится. |
|
|
|
Тогда тикет не закрывать, а переписать заголовок и описание на более корректное описание проблемы. |
|
|
(0011620)
|
zed
|
10-06-2013 12:01
|
|
>Также вопрос, могу ли я как-то изменить архив на вашем сайте на странице
Пробуйте. Это ж wiki. |
|
|
(0011621)
|
TEBS-S
|
10-06-2013 12:01
|
|
Я исправил в коде ПХП генерацию прозрачности. Так что уже можно не ждать обновления :)
Изменения: строки 192-195 были
imageantialias($im, false);
$transparent = imagecolorallocate($im, 254, 254, 254);
imagefill($im, 0, 0, $transparent);
imagecolortransparent($im, $transparent);
стали
imagealphablending($im, false);
$transparent = imagecolorallocatealpha($im, 255,255,255,127);
imagefill($im, 0, 0, $transparent);
imagealphablending($im,true);
строки 387-388 были:
imagepng($im);
imagedestroy($im);
стали
imagealphablending($im,false);
imagesavealpha($im,true);
imagepng($im);
imagedestroy($im); |
|
|
(0011622)
|
TEBS-S
|
10-06-2013 12:08
|
|
Внес изменения в вики-статью. Надеюсь правильно в плане оформления. |
|
|
(0014856)
|
zed
|
05-11-2014 16:50
|
|
|
|
(0015417)
|
zed
|
16-03-2015 11:24
|
|
Вчера обновился FreeImage до версии 3.17.0 и при сборке с этой версией, баг не воспроизводится. В чейнджлоге у них там даже прописаны какие-то фиксы про PNG:
> fixed PNG plugin handling of 16-bit grayscale + 16-bit alpha images
> fixed PNG plugin handling of 16-bit grayscale + tRNS chunk images
> fixed PNG plugin handling of 24-bit RGB + tRNS chunk images
> fixed PNG plugin handling of 1-,4-bit greyscale/palettized + tRNS chunk images
надо пересобрать облегчённую версию и обновиться. |
|
|
|
|
|
(0015419)
|
zed
|
16-03-2015 11:28
|
|
А может ты хочешь? Там, кстати, и libpng нужно пересобирать, а там и zlib уж за одно :) |
|
|
|
Когда-нибудь - вполне возможно. Но не в ближайшие пару дней. |
|
|
(0017334)
|
zed
|
10-06-2016 18:50
|
|
Собрал FreeImage 3.17.0, баг пропал. |
|