При создании встроенного SVG с фильтрами я должен определить идентификатор фильтра.Duplicate (filter) id inline SVG
Когда я автоматически генерирует несколько инлайн SVG с небольшими различиями, фильтр первого изображения преобладает (перезаписывает) фильтр из следующих образов (из-за дублирующие фильтры ID).
Живая демо, гораздо более ясно: http://jsfiddle.net/9wqgS/
<p>Image 1 Hue = 100</p><p>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="120">
<filter id="colorchangerfilter" x="0" y="0" width="1" height="1">
<feColorMatrix id="huefilter" type = "hueRotate" values = "100"/>
</filter>
<image
xlink:href="http://upload.wikimedia.org/wikipedia/commons/thumb/archive/6/6e/20110118171033%21HTML5-logo.svg/120px-HTML5-logo.svg.png" width="120" height="120" filter="url(#colorchangerfilter)"/>
</svg>
</p><br>
<p>Image 2 Hue = 200</p><p>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="120" height="120">
<filter id="colorchangerfilter" x="0" y="0" width="1" height="1">
<feColorMatrix id="huefilter" type = "hueRotate" values = "200"/>
</filter>
<image
xlink:href="http://upload.wikimedia.org/wikipedia/commons/thumb/archive/6/6e/20110118171033%21HTML5-logo.svg/120px-HTML5-logo.svg.png" width="120" height="120" filter="url(#colorchangerfilter)"/>
</svg>
</p>
Image 1 должен быть зеленого цвета (оттенок = 100) и изображение 2 должен быть синего цвета (оттенок = 200). Вместо этого оба изображения зеленые.
Я посылаю ниже обходной путь к этому вопросу, но я действительно хотел бы иметь более простое решение ...
То, что вы описали, может стать возможным в будущем, см. Https://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html#the-clip-path ('child' ключевое слово), но еще не реализовано в браузерах. Итак, прямо сейчас вам нужно создать уникальные идентификаторы для этого. –