2013-09-03 3 views
7

Я пытаюсь добавить изображение в центр круга SVG. Я попытался с узорамиКак добавить изображение в центр круга SVG?

<pattern id="image_birds" x="0" y="0" patternUnits="userSpaceOnUse" height="100" width="100"> 
<image x="0" y="0" xlink:href="birds.png" height="50" width="50"></image> 
</pattern> 

Но это не центр изображения. Я работаю с Javascript.

ответ

1

Хорошо, я нашел ответ. То, что я сделал это добавление filter моему: SVG

<filter id = "i1" x = "0%" y = "0%" width = "100%" height = "100%"> 
    <feImage xlink:href = "birds.png"/> 
</filter> 

и в кружке добавить атрибут

circle.setAttribute('filter','url(#i1)'); 
+0

, который выглядит как взломанный –

5

Отсечение должны делать то, что вы ищете: https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Clipping_and_masking

Что-то вроде:

<clipPath id="cut-off-bottom"> 
    <circle cx="100" cy="100" r="50" /> 
</clipPath> 

<image x="25" y="25" xlink:href="http://placehold.it/150.png" height="150" width="150" clip-path="url(#cut-off-bottom)" ></image> 

Вы можете увидеть результат этого примера здесь: http://jsbin.com/EKUTUco/1/edit?html,output

До вас в центр изображения в javascript в соответствии с их размерами, через атрибуты x и y.

+0

Thanx, но я сделал это в конце концов, с фильтром [ссылка] (HTTP: //www.svgbasics .com/filters1.html) –

+0

ok. две вещи, которые вы должны проверить: 1. нужна ли поддержка IE9 (фильтры поддерживаются только с IE10, работы клипов в IE9). 2. Производительность, если ваше приложение интенсивно обрабатывает клиентскую часть. Фильтры могут быть медленнее, чем клип. –

+0

Спасибо фильтр медленнее, чем отсечение, но он сделал работу для меня. –