Комментарии 57
У меня одного первая картинка долго отрисовывалась? Интересно, остальные уже отображаются, а первая заполняется как шахматное поле маленькими клеточками примерно в течение 3 сек. Браузер Chrome.
Она отрисовывается в прямом смысле. Это GIF-анимация.
Не думаю, после рефреша страницы эффект не повторился.
Если бы была анимация, была бы такая же отрисовка. А так, видимо, отрендеренная страница отобразилась из какого-то буфера.
Забавно, если попытаться сохранить 173 кадра через GIMP с 0ms интервалом, то GIMP матюкнется и скажет что сам встраивает задержку дабы 'не перегружать процессор сложной анимацией'.
Так что постепенная отрисовка может быть частью какого-то механизма защиты от пиковых нагрузок, в связи с тем что браузеры вряд ли подозревают о существовании многоблочных truecolor GIF )
Так что постепенная отрисовка может быть частью какого-то механизма защиты от пиковых нагрузок, в связи с тем что браузеры вряд ли подозревают о существовании многоблочных truecolor GIF )
Необязательно защита, это может быть и намеренно добавленная пауза для корректной отрисовки других изображений (я не про GIMP, я вообще). Например, когда в Total Commander была добавлена встроенная (без плагинов) поддержка GIF-изображений, пользователи тут же стали натыкаться на самые разные картинки, у которых анимация шла с реактивной скоростью, тогда как во всех программах-просмотрщиках скорость была нормальной. И автору Тотала пришлось добавлять принудительную задержку между кадрами (конфигурируемое минимальное значение паузы).
Так что, судя по всему, имеет место быть порочный круг, когда разные пользователи продолжают плодить кривые гифки с нулевой паузой, не зная, что это неправильно, потому что во всех программах они показываются нормально. А разработчики программ не могут убрать паузу, потому что тогда все эти гифки начнут отображаться некорректно, и пользователи будут недовольны.
Так что, судя по всему, имеет место быть порочный круг, когда разные пользователи продолжают плодить кривые гифки с нулевой паузой, не зная, что это неправильно, потому что во всех программах они показываются нормально. А разработчики программ не могут убрать паузу, потому что тогда все эти гифки начнут отображаться некорректно, и пользователи будут недовольны.
Это анимация, гимп показывает 173 кадра с 0-й задержкой.
Принцип действия, на сколько я понимаю, — не более 256 цветов в одном слое, моментальная покадровая отрисовка и вуаля — полноцветное изображение.
Вот только не учтено, что сам рендеринг у программ может быть разный, как пример, вставляются дополнительные паузы между кадрами.
Принцип действия, на сколько я понимаю, — не более 256 цветов в одном слое, моментальная покадровая отрисовка и вуаля — полноцветное изображение.
Вот только не учтено, что сам рендеринг у программ может быть разный, как пример, вставляются дополнительные паузы между кадрами.
У меня после Ctrl+F5 эффект повторился.
У меня повторяется из раза в раз.
Это не совсем анимация.
Там 173 блока (GIMP видит их как кадры с с задержкой в 0ms), т.е. оно должно отрисовываться мгновенно.
В каждом блоке-кадре не более 256 уникальных цветов, если их сложить, то будет 32697.
Там 173 блока (GIMP видит их как кадры с с задержкой в 0ms), т.е. оно должно отрисовываться мгновенно.
В каждом блоке-кадре не более 256 уникальных цветов, если их сложить, то будет 32697.
3 секунды? Это еще хорошо. У меня оно секунд 20 рисуется.
Ага, секунд 10-15, что в Опере, что в Хроме. Только в опере перерисовывается каждый раз, когда картинка исчезает из поля зрения.
У меня в Firefox тоже секунд 20.
Стоит запостить баг во всех браузерах ;)
Видели бы вы как в ACDSee эта картинка рисуется…
Тоже медленно, так еще и некорректно, фон переливается всеми цветами, а квадратики «пачкаются»черными полосасми.
Тоже медленно, так еще и некорректно, фон переливается всеми цветами, а квадратики «пачкаются»черными полосасми.
Я так понимаю, первое изображение это анимация, а не особенность отрисовки?
И кстати, это изображение некорректно отображается в локальном viewer'е (использую gpl Imagine) – последовательно показываются все цвета вместо градиента.
А вообще очень удивили! Спасибо за информацию!
И кстати, это изображение некорректно отображается в локальном viewer'е (использую gpl Imagine) – последовательно показываются все цвета вместо градиента.
А вообще очень удивили! Спасибо за информацию!
И, кстати, если это анимация, то насколько меньше размер этого же изображения с одним кадром?
Не думаю что неизвестный англоязычный, предположительно весьма бородатый, автор читал русскоязычный блог bolk'а)
Ну, как раз через десяток копипастов и переводов за год и дошло :)
В общем, это оказывается любопытным и малоизвестным фактом, который имеет малую практическую пользу.
Интересно, но на каждый слой всё равно не больше 256 цветов…
Кстати,как всегда решение глючит в ИЕ9. Появляются вертикальные белые полосы между фреймами, а при изменении масштаба и вовсе сетка, пруф:
Кстати,
Скрытый текст
А если по правому меню «скопировать», то копируется только первый слой (маленький красный квадрат).В Opera еще веселее, квадратики появляются на черном фоне, и когда скролишь чуть-чуть вниз, то картинка начинает заново перерисовываться (если она еще не успела отрисоваться до конца). Потом когда картинка отрисована, стоит сделать чтобы картинка ушла из области видимости (скролинг, переключение на другую вкладку), и при возврате она снова перерисовывается.
Смотрел в Opera 12.
Смотрел в Opera 12.
при возврате она снова перерисовывается.
Вот именно эта часть, насколько я знаю — не бага, а фича. Вся анимация перерисовывается при уходе и входе в область видимости.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Надо порыться в спецификациях, может GIF еще и альфа-канал поддерживает :)
А true color разьве не 16777216 цветов
НЛО прилетело и опубликовало эту надпись здесь
У меня при повторной загрузке страницы отрисовывается моментально.
Ну в статье как обычно «не вся правда» :) таки палитра гиф изображения ограничена 256 цветами. Другое дело что цвета в палитре заданы реальным truecolor. В этой гифке использовали «фичу» анимации и видимо для разных кадров умудрились выставить разную палитру.
Такие GIF-ы стары как мир. Многие не знают о такой возможности и в основном из-за того, что программы в большинстве своем не предоставляют такую возможность. Мало того, даже программы для просмотра не всегда правильно отображают такие картинки. Браузеры корректно отображают, но время рендера не соответствует спецификации.
Как ни странно, обычный Paint открывает такие GIF-ы правильно и без задержек, при том сама система, в проводнике и встроенном просмотре, отображает только первый кадр.
В своей программе CQ я реализовал возможность записи GIF-ов с любым количеством цветов, кому интересно можете поиграться. От себя замечу, что целесообразность очень сомнительная. Однако для большинства изображений достаточно всего нескольких тысяч цветов и с такими параметрами GIF-ы получаются не такими увесистыми как с полным набором цветов, хотя и больше PNG.
GIF 3942 цветов / 58,6 кб
Delay Time — If not 0, this field specifies the number of hundredths (1/100) of a second to wait before continuing with the processing of the Data Stream.
Process each graphic in the Data Stream in sequence, without delays other than those specified in the control information.
Как ни странно, обычный Paint открывает такие GIF-ы правильно и без задержек, при том сама система, в проводнике и встроенном просмотре, отображает только первый кадр.
В своей программе CQ я реализовал возможность записи GIF-ов с любым количеством цветов, кому интересно можете поиграться. От себя замечу, что целесообразность очень сомнительная. Однако для большинства изображений достаточно всего нескольких тысяч цветов и с такими параметрами GIF-ы получаются не такими увесистыми как с полным набором цветов, хотя и больше PNG.
GIF 3942 цветов / 58,6 кб
а что на счёт исходников? :)
Исходники!? Там пару строк кода =)
Алгоритм простой:
— собираем все уникальные цвета
— упорядочиваем (от способа будет зависеть эффект прорисовки и конечный размер файла)
— разбиваем все это дело на куски по 256 цветов (локальные палитры для каждого кадра)
— пишем кадры из имеющихся локальных палитр.
Алгоритм простой:
— собираем все уникальные цвета
— упорядочиваем (от способа будет зависеть эффект прорисовки и конечный размер файла)
— разбиваем все это дело на куски по 256 цветов (локальные палитры для каждого кадра)
— пишем кадры из имеющихся локальных палитр.
НЛО прилетело и опубликовало эту надпись здесь
Так это же Progressive JPEG!!! :D
в Андроидном браузере первое изображение сплошной красный цвет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
True-Color GIF