2011-02-02 2 views
3

Я строию онлайн-инструмент, где человек может «построить свой велосипед», выбрав цвета для различных частей (рамка, вилка, сиденье и т. Д.). Я начинаю с чистого изображения JPG на велосипеде с белой рамкой и черными компонентами. Что я ищу немного о том, какой технический путь нужно предпринять. Возможны следующие варианты:Советы по динамическому изменению областей изображения

  • PNG с альфа-прозрачностью, размещать фоновые изображения по различным регионам.
  • конвертировать мой JPG в SVG и выполнять преобразование цвета с библиотекой JS
  • Использование Рафаэль-JS рисовать поверх изображения на

Я сделал свой самый обширный тестирование с Рафаэлем, но я не вполне понятно, как все это может объединиться. Добрый человек в своем списке рассылки дал очень хорошее доказательство концепции (see here), но полученный код привязан к аякс-вызовам на своем сервере, чтобы отобразить результат, поэтому я не могу воспроизвести результат локально.

Конечная цель заключается в том, чтобы велосипед выглядел реалистично с различными цветами. Если кто-нибудь знает примеры подобных проектов, в которых цвета областей реалистичных изображений настраиваются с помощью JavaScript, я был бы очень благодарен.

ответ

1

Другой вариант - холст HTML 5. Все браузеры, за исключением Internet Explorer, поддерживают его (IE 9 также поддерживает его). С тегом canvas вы можете делать собственные пиксельные операции на изображении.

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

Если вы не знаете, холст тег, то вы можете найти хороший учебник здесь:

https://developer.mozilla.org/en/canvas_tutorial

+0

Спасибо за предложение. Я должен был упомянуть, что я рассматривал canvas, но я обеспокоен тем, что он может не иметь достаточно широкой поддержки браузера. Но по этому критерию не может быть и речи о SVG. –

+0

@Duane Gran: Никогда не использовал SVG в браузерах, но насколько я знаю, ситуация такая же. Все основные браузеры поддерживают его, за исключением Internet Explorer (И снова IE 9 является исключением). Но, скорее всего, мы должны поддерживать браузеры, такие как IE 7 и IE 8, в течение многих лет, поэтому canvas и SVG всегда являются проблемой. Так что это еще одна веская причина, чтобы придерживаться альфа-PNG. – kayahr

0

Мой первый наклон будет идти с SVG, вероятно, с помощью Рафаила (который использует SVG). Если это можно заставить работать, библиотека более высокого уровня, которая уже делает то, что вы хотите, должна сэкономить вам значительное время на перетасовку изображения более низкого уровня. Надеюсь, вы можете принять данное доказательство концепции и изменить элементы, зависящие от ajax, правильно?

Если нет, использование прозрачных PNG также является хорошим вариантом при условии, что PNG являются статическими. Но, как вы знаете, IE 6 не может обрабатывать альфа-PNG и по-прежнему имеет значительную долю на рынке.

+0

Если IE6 действительно должен поддерживаться (я отказался от поддержки несколько месяцев назад), тогда трюк AlphaImageLoader можно использовать для использования альфа-прозрачных PNG. – kayahr

Смежные вопросы