View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001953SAS.Планета[All Projects] Багpublic10-06-2013 08:5610-06-2016 18:50
ReporterTEBS-S 
Assigned Tozed 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformWindowsOS7OS VersionUltimate
Product Version120808 
Target Version160707Fixed in Version160707 
Summary0001953: Нет прозрачности у png тайлов с 24 битным цветом
DescriptionИспользуется свой собственный слой для карты. Используемый формат - png. В версиях 11-го года прозрачность png рисуется корректно, в версиях 12-го года (120808 и 121010), а также в SAS.Planet.Nightly.130610.7271.7z прозрачность файлов становиться белой непрозрачной, что закрывает основную карту.
Tagspng, SAS Cache Manager, прозрачность, слои
Attached Filespng file icon sas_ok_110216.png [^] (392,580 bytes) 10-06-2013 08:56
png file icon sas_bad_121010.png [^] (98,895 bytes) 10-06-2013 08:56


png file icon y2758.png [^] (1,663 bytes) 10-06-2013 08:57


png file icon y2759.png [^] (1,505 bytes) 10-06-2013 08:57


7z file icon Png.zmp.7z [^] (2,051 bytes) 10-06-2013 10:13
? file icon map.php_new [^] (12,595 bytes) 10-06-2013 11:48
? file icon map.php_old [^] (12,137 bytes) 10-06-2013 11:49

- Relationships
parent of 0003053resolvedzed Обновить библиотеку FreeImage до версии 3.17 

-  Notes
(0011591)
TEBS-S (reporter)
10-06-2013 08:58

Во вложении скриншот со старой и новой версией Sas планеты. А также кусок кэша.
(0011595)
zed (manager)
10-06-2013 09:42

Чем особенным отличается ваш png от того же гугло-гибрида?
(0011599)
vasketsov (manager)
10-06-2013 09:53

Существует куча слоёв, работающих в сасе вот хоть прямо сейчас, реализованных на прозрачных PNG:
1. Это и обычные гибриды типа яндекса и гугла, грузящиеся по одному тайлу и не модифицируемые сасом.
2. Это и мегатайловые гибриды типа слоя кадастровых границ росреестра, которые сас отлично качает хоть даже 4x4 и сам режет на тайлы, не нарушая прозрачности png.
Итого: если и есть где-то проблема в сасе с прозрачностью png, то она не на поверхности. Нельзя просто так взять и сказать, что в сасе нет прозрачности у png слоя.
(0011600)
TEBS-S (reporter)
10-06-2013 09:59
edited on: 10-06-2013 10:12

Я не знаком глубоко с архитектурой Сас, потому не готов вступить в полемику где же есть проблема в коде и в какой строке :) Я нашел неприятный, как минимум для меня, баг. Постарался изначально максимально "поиграться" с настройками чтобы избежать проблемы, но не смог. Мой PNG теоретически ничем не должен отличаться, к тому же в версия до 2012 года все работает на ура. Да, и я забыл указать, что png генерируется через SAS Cache Manager. Может что-то надо изменить в настройках и/или генераторе картинок?

(0011602)
vasketsov (manager)
10-06-2013 10:09

Имеет смысл ещё приаттачить zmp
(0011603)
zed (manager)
10-06-2013 10:13

>Да, и я забыл указать, что png генерируется через SAS Cache Manager
Насколько я понимаю, он генерируется на сервере. Либо лежит уже сгенерированный, там же.
(0011604)
TEBS-S (reporter)
10-06-2013 10:14

> Насколько я понимаю, он генерируется на сервере. Либо лежит уже сгенерированный, там же.

Генерируется на сервере под каждый запрос.
(0011605)
zed (manager)
10-06-2013 10:21

Фотошоп, кстати, тоже не понимает прозрачность в вашем png... Какая-то беда с маской альфа-канала или ещё чем.
(0011606)
zed (manager)
10-06-2013 10:22

>Генерируется на сервере под каждый запрос.
Ну вот может там и подправить параметры-то?
(0011608)
TEBS-S (reporter)
10-06-2013 10:33

> Фотошоп, кстати, тоже не понимает прозрачность в вашем png... Какая-то беда с маской альфа-канала или ещё чем.

Фотошопом не обладаю, но все программы, которыми я открывал это png понимали. Спасибо за наводку, поковыряюсь в php
(0011610)
vdemidov (manager)
10-06-2013 10:38

На первый взгляд png валидный. Нужно изучать в чем проблема.
(0011611)
TEBS-S (reporter)
10-06-2013 10:38

Ну и повторюсь, в версиях до 120808 прозрачность прозрачна. Возможно у вас изменялся модуль какой, отвечающий за работу с png. Если да, то может подскажите что именно изменилось, дабы не перелопачивать все подряд, а изменить только необходимое
(0011612)
vdemidov (manager)
10-06-2013 10:41

Поменялась библиотека отвечающая за чтение графических форматов.
(0011613)
zed (manager)
10-06-2013 10:53

Ну, если говорить про библиотеку, то она может накосячить в функции ConvertTo32Bits. У проблемного png 24 бита и возможно такие png априори считаются без прозрачности.
(0011614)
TEBS-S (reporter)
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 (reporter)
10-06-2013 11:34

Прозрачность исправил, в другом накосячил :) Удалите пока map.php_new дабы не вводить в заблуждение ползователей
(0011617)
TEBS-S (reporter)
10-06-2013 11:48

Исправленный php залил. Можно закрывать кейс, спасибо
(0011618)
zed (manager)
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-битные.

В следующих версия либы (она обычно раз/два в год обновляется), ситуация возможно изменится.
(0011619)
vdemidov (manager)
10-06-2013 11:57

Тогда тикет не закрывать, а переписать заголовок и описание на более корректное описание проблемы.
(0011620)
zed (manager)
10-06-2013 12:01

>Также вопрос, могу ли я как-то изменить архив на вашем сайте на странице
Пробуйте. Это ж wiki.
(0011621)
TEBS-S (reporter)
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 (reporter)
10-06-2013 12:08

Внес изменения в вики-статью. Надеюсь правильно в плане оформления.
(0014856)
zed (manager)
05-11-2014 16:50

Проверьте свежую версию FreeImage, может пофиксили: FreeImage3160Win32.zip
(0015417)
zed (manager)
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

надо пересобрать облегчённую версию и обновиться.
(0015418)
vdemidov (manager)
16-03-2015 11:26

О, круто. Пересоберешь?
(0015419)
zed (manager)
16-03-2015 11:28

А может ты хочешь? Там, кстати, и libpng нужно пересобирать, а там и zlib уж за одно :)
(0015420)
vdemidov (manager)
16-03-2015 11:33

Когда-нибудь - вполне возможно. Но не в ближайшие пару дней.
(0017334)
zed (manager)
10-06-2016 18:50

Собрал FreeImage 3.17.0, баг пропал.

- Users who viewed this issue
User List Anonymous (3493x), ig0rr (1x), OfK (1x), stepanxxx (9x), arg-08 (1x), aflexus (1x), zOn (1x), vdemidov (4x), zed (9x), ygorigor (1x)
Total Views 3521
Last View 13-08-2020 17:07

- 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 View Revisions
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 View Revisions
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



Copyright © 2007 - 2020 SAS.Planet Team