Xpoint
   [напомнить пароль]

Цветное изображение в черно-белое через JS? (CSS? CANVAS?)

Метки: [без меток]
2008-02-28 14:39:23 [обр] Yan[досье]

Для IE задача решается применением соответствующего фильтра в CSS: filter:gray

Можно ли реализовать такое кроссбраузерно?
К примеру, используя CANVAS, или ещё что из "новинок" HTML?
Например, для отражения картинок есть рабочие примеры:
http://cow.neondragon.net/stuff/reflection/
Но для преобразования картинки в grayscale мне найти пример не удалось.

Конечно, проще сделать всё на сервере, но интересно узнать, реализуемо ли такое в принципе на клиенте.

спустя 37 минут [обр] Давид Мзареулян(107/1003)[досье]
Не уверен насчёт новинок html. Может быть, флэш использовать?
спустя 27 минут [обр] Yan[досье]
Флэш в принципе подходит, но интересно, есть ли альтернатива?
спустя 8 часов [обр] Василий Свиридов(21/175)[досье]
Yan[досье]Если в канве можно обращаться к индивидуальным пикселям - можно пересчитать каждый по этой формуле Y = 0.3*R + 0.59*G + 0.11*B, только не знаю насколько быстро это будет работать...
спустя 9 часов [обр] Lynn «Кофеман»(110/571)[досье]
В FF3 в SVG сделали feColorMartix.
спустя 6 часов [обр] Yan[досье]
Василий Свиридов[досье]
Действительно, в CANVAS'е можно работать попиксельно. Вот сделал тестовый примерчик:
http://adstat-ru.1gb.ru/temp/canvas_grayscale/
В FF2 работает, в Опере и Safari не хочет, попозже посмотрю, в чем там дело.
А вот скорость и правда не ахти: на больших картинках тормоза сильные.
спустя 6 дней [обр] Дмитрий[досье]
Да неправильно все это. Браузеры изначально не предназначены для сложной работы с изображениями. Если таковая требуется, то это однозначно Флэш.
спустя 2 часа 16 минут [обр] Евгений Петров(411/1055)[досье]
сообщение промодерировано
Дмитрий[досье]
Спорное суждение... Изначально браузеры вообще были призваны отображать только текст. На тот момент (начало 90-х) ни о каких youtube речи не могло зайти. Попробовали бы Вы завести в то время разговор об online-трансляциях...
Лет через 10 о таких проблемах будут вспоминать с усмешкой и тех, кто будет о них напоминать, называть ретроградами...
спустя 2 часа 38 минут [обр] Давид Мзареулян(107/1003)[досье]
Дмитрий[досье] Знаете, пока не попробуешь — не узнаешь, для чего браузеры приспособлены:)
спустя 1 день 15 часов [обр] Дмитрий[досье]
Согласен с Давидом. Намучаешься еще с кроссбраузнерностью, пока все не перепробуешь... Поэтому лучше юзать флэшку.
Я вот тут еб...сь с DHTML'ом и DOM'ом, получается хорошая анимация, - но кляну на чем свет стоит, что в свое время занялся именно этим, а не флэшкой. На обеспечение кроссбраузерности уходит до четверти ресурсов, на визуальные эффекты - масса времени, и т.п., и это при полном осознании того, что во флэшке или во флексе это все было бы намного презентабельнее, быстрее и эффективнее.
спустя 1 день 8 часов [обр] Василий Свиридов(21/175)[досье]

Дмитрий[досье]Если вы посмотрите на тендеции мэйнстримовых браузеров, то заметите, что эти проблемы тоже постепенно исчезают. Все пытаются добиться одинакового рендеринга и работы скриптового движка (см. ACID 2 & 3). Жалко только, что это заняло столько времени пока они не догадались.

намного презентабельнее, быстрее и эффективнее

и проприетарнее...

спустя 11 часов [обр] Давид Мзареулян(107/1003)[досье]
Дмитрий[досье] Я не знаю, конечно, Вашей задачи, но, возможно, Вам просто стоит использовать одну из готовых JS-библиотек визуальных эффектов? Во всяком случае, не будет проблем с кроссбраузерностью.
спустя 4 часа 30 минут [обр] Дмитрий[досье]
Давид: "готовые библиотеки JS эффектов" непомерно раздуты. Мои собственные библиотеки тех же самыех эффектов весят на порядок легче, и работают быстрее. Аналоги тех же самых Prototype Window или например TinyMCE.
Впрочем, я, как говорил, собираюсь переходить на Flash... Хотябы из соображений безопасности и отношения к этому вопросу пользователей, отключающих JS, из соображений ПРОФИЛЬНОСТИ среды разработки и Runtime исполнения. Все-таки JS - не для графики, а для более общих прикладных целей. Для графики - флэш.
....
Такого вот рода соображения :)
спустя 1 час 1 минуту [обр] Давид Мзареулян(107/1003)[досье]
Мои собственные библиотеки тех же самыех эффектов весят на порядок легче, и работают быстрее…
Ну, тогда не жалуйтесь на потери времени на обеспечение совместимости — это Ваша плата за изобретение велосипеда… Когда надоест воевать с глюками разных версий браузеров, попробуйте всё-таки хотя бы jQuery.
спустя 14 часов [обр] Дмитрий[досье]
Давид,
дело не в JQuery, как условном заменителе CSS, и не в его весьма ограниченных по функциональности плагинах. Дело в принципе. JS - не для графики и анимации. Рисовать и анимировать с помощью JS - все равно что распечатывать портрет Моны Лизы на принтере с помощью букв и цифр, как любили делать в НИИ на заре компьютерной индустрии. Зачем? Есть более подходящие для этого средства.
спустя 4 часа 27 минут [обр] Давид Мзареулян(107/1003)[досье]
«Дело в принципе» — да я понял, понял. То, что внутри флэша ужа давно всё делается на ActionScript — родном брате JS, и точно так же манипулируются объекты и таймеры — это неважно. Дело в принципе.
спустя 4 часа 42 минуты [обр] Дмитрий[досье]
Так же-то так же, а вот грейскейл картинки в JS хрен сделаешь :) Отсюда и пляшем.
спустя 42 минуты [обр] Давид Мзареулян(107/1003)[досье]
Дмитрий[досье] Уели:)
Powered by POEM™ Engine Copyright © 2002-2005