Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: глюки с прозрачностью png в IE  (Прочитано 18856 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Chuda
Гость
« : 09-05-2006 12:58 » 

http://www.pascucci.info - ну что за фигня? в IE вместо прозрачности белый цвет. Как с этим бороться?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 09-05-2006 13:08 » 

Chuda, это не глюк - просто IE не поддерживает альфа-канал в png. Может быть, через DX в стилях можно обойти, но детали я не знаю.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #2 : 09-05-2006 18:26 » 

Во-во с самого рождения не поддерживает. А линк это ты здорово поставила - у меня всё работает.
На Мозиле Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 09-05-2006 18:59 » 

Джон, посмотри через IE - получи массу удовольствия Ага
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 09-05-2006 20:13 » 

Аааафигеть, дайте две. Особенно когда размеры меняешь. А ещё говорят ИЕ фигня, столько приколов! Надо тоже будет мозилку забросить и на ИЕ переходить.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #5 : 09-05-2006 20:47 » 

Chuda,  а в gif перекидать все изображения? Вроде c GIF IE дружит.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 09-05-2006 21:53 » 

Finch, gif поддерживает только "прозрачный цвет" (типа chrom key). Эффект прозрачности можно съиммитировать только с одноцветным, заранее определенным фоном.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 09-05-2006 22:01 » 

На странице идет игра и по степени прозрачности?
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #8 : 09-05-2006 22:25 » 

Дело не только в этом. ГИФ может только 256 цветов. Те о качественных фото можно забыть.
В то время как пинг поддерживает до 48 бит (если не вру конечно - давно было)

зы В ГИФе просто определяется один цвет - цвет маски. Антиалиас можно сделать только с определённым цветом фона - например фон белый. Делаем его прозрачным с антиалиас, тогда на чёрном фоне будет виден белый контур. Альфа канал позволяет установить действительную прозрачность. Те конечное изображение будет пересчитано с учётом любого фона.
« Последнее редактирование: 09-05-2006 23:02 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Шнибл
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 12-05-2006 09:58 » 

Или поправили ужо... но у меня всё хорошо видно.
Записан
Chuda
Гость
« Ответ #10 : 13-05-2006 13:48 » 

поправили.
только сегодня.
рассказываю как.
в css есть такая запись:
img{
   behavior: url('http://www.pascucci.info/pngbehavior.htc');
}
по этому адресу расположен скрипт, который заставляет ИЕ правильно обрабатывать пнг.
как он работает - не знаю. но работает.
посмотреть может каждый желающий.
и если кто захочет использовать в веб альфа-канал - имейте в виду.
« Последнее редактирование: 19-12-2007 19:56 от Алексей1153++ » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 13-05-2006 16:35 » 

Chuda, собственно, то, на что я намекал, но не знал как Ага
Код:
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
Т.е. через DX.

Извращенцы они там в MS...

Скрипт я запощу здесь, да бы он не потерялся.
Код:
<public:component lightWeight="true">
<public:attach event="onpropertychange" onevent="propertyChanged()" />
<public:attach event="onbeforeprint" onevent="beforePrint()" for="window"/>
<public:attach event="onafterprint" onevent="afterPrint()" for="window"/>
<script>

var supported = /MSIE ((5\.5)|[6789])/.test(navigator.userAgent) &&
navigator.platform == "Win32";

var realSrc;
var blankSrc = "\/blank.gif";
var isPrinting = false;

if (supported) fixImage();

function propertyChanged() {
if (!supported || isPrinting) return;

var pName = event.propertyName;
if (pName != "src") return;
// if not set to blank
if (!new RegExp(blankSrc).test(src))
fixImage();
};

function fixImage() {
// get src
var src = element.src;

// check for real change
if (src == realSrc && /\.png$/i.test(src)) {
element.src = blankSrc;
return;
}

if ( ! new RegExp(blankSrc).test(src)) {
// backup old src
realSrc = src;
}

// test for png
if (/\.png$/i.test(realSrc)) {
// set blank image
element.src = blankSrc;
// set filter
element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." +
"AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
}
else {
// remove filter
element.runtimeStyle.filter = "";
}
}

function beforePrint() {
isPrinting = true;
element.src = realSrc;
element.runtimeStyle.filter = "";
realSrc = null;
}

function afterPrint() {
isPrinting = false;
fixImage();
}

</script>
</public:component>
« Последнее редактирование: 19-12-2007 19:59 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Chuda
Гость
« Ответ #12 : 13-05-2006 16:44 » 

я совершенно не поняла, на что ты намекал, я вообще не поняла, что случилось, что не работает и почему, и как это исправилось.
но скриптом делюсь просто потому что может он ещё кому поможет.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 13-05-2006 16:48 » 

См. мой первый пост в этой теме - там я намекал.
Смысл скрипта: назначить картинке источник альфа-канала из файла. В данном случае - того же что и сама картинка.
А не работает потому что IE. Ага

За скрипт - спасибо! Наверняка сгодится.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Aleck D.Shadow
Опытный

tr
Offline Offline
Пол: Мужской

« Ответ #14 : 02-06-2006 17:31 » new

вот здесь скрипт посовершеннее  Да-да будет http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html.
там полный боекомплект для борьбы с глючностью прозрачности.
« Последнее редактирование: 02-06-2006 17:33 от Aleck D.Shadow » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines