Internet Explorer нежелательных артефактов на изображениях при использовании слайд-шоу JavaScript - PullRequest
2 голосов
/ 21 сентября 2010

При использовании слайд-шоу javascript во всех версиях браузеров Internet Explorer наблюдается следующее странное (хорошо ...) поведение.

Вы можете видеть, что я имею в виду здесь http://www.tospirto.net/index.php?ID=photo_gallery&Rec_ID=481

На последних 3 изображениях есть белые линии и артефакты, созданные браузером.
Это верно, как я сказал для всех версий Internet Explorer.

Вы видели это раньше ??
Вы хоть представляете, что это вызывает ???

Спасибо

Ответы [ 3 ]

1 голос
/ 21 сентября 2010

Я вижу артефакты - странно!Это известная проблема в алгоритме рендеринга JPEG в IE.Если вы увеличите изображения в Photoshop, вы увидите, что артефакты ограничены блоками кодирования.(Извините, но я предполагаю, что вы примерно знаете, как кодируется JPEG.)

Попробуйте кодировать изображения с другим качеством или даже в другом формате (например, PNG, даже если это даст вам файлы большего размера),Другие мысли о том, как решить эту проблему, можно найти здесь: http://forum.jquery.com/topic/ie-dead-pixels-when-fading-images

0 голосов
/ 22 сентября 2010

ОК, после некоторых поисков я нашел, что было не так.
Эффект называется артефактами изображения швейцарской армии, и вы можете найти больше об этом здесь: http://www.dynamicdrive.com/forums/showthread.php?t=34462

Еще одна замечательная ошибка от исследователей:)

Решение находится на ссылочной статье, которая состоит в том, чтобы удалить абсолютные черные цвета, например, с помощью инструмента уровней в фотошопе. Сделал пакетное изменение, используя действия в фотошопе для всех картинок и работает как шарм.

0 голосов
/ 21 сентября 2010

Это ошибка в фильтре alpha, который показывает, как прозрачные замирания реализованы в IE (до версии 9, которая наконец поддерживает надлежащий CSS opacity). При использовании непосредственно на изображении любой пиксель со значениями RGB 2,5,10 (он же #02050A) считается прозрачным.

Так выглядит 1-битная прозрачность, например. GIF реализован в фильтре alpha. Очевидно, Microsoft считает, что этот конкретный цвет используется так редко, что никто не заметит. К сожалению.

Чтобы избежать ошибки, поместите фильтр alpha (или сценарий затухания, который его использует) в контейнер <div> вместо самого изображения.

В качестве альтернативы, вы можете использовать фильтр AlphaImageLoader (такой же хак, как для прозрачной загрузки PNG в IE6), чтобы загрузить изображение, или просто избавиться от фильтра alpha, когда вы не находитесь в середине затухания (вы все еще видите ошибку во время исчезновения, но по крайней мере она не появляется на 100%).

...