2015-04-14 2 views
-3

Я хотел бы, если это возможно, использовать StackBlur.js, чтобы установить фон на DIV до определенного изображения, скажем, это одно: http://img.youtube.com/vi/2UphAzryVpY/mqdefault.jpg, но я действительно не знаю, как для этого.Использование StackBlur в качестве фонового изображения DIV

+1

Пожалуйста, поделитесь этим кодом, который вы написали, чтобы достичь этой цели. – Ejaz

ответ

1

Поскольку код требуется всего около 7 строк ... вот оно! :-)

Вот пример того, как использовать StackBlur.js Quasimondo, чтобы размыть изображение и установить его в качестве фона в DIV:

enter image description here

var img=new Image(); 
 
img.crossOrigin='anonymous'; 
 
img.onload=start; 
 
img.src="https://dl.dropboxusercontent.com/u/139992952/idcard1.png"; 
 
function start(){ 
 
    blurImageToBackground(img,document.getElementById('myDiv')); 
 
} 
 

 
function blurImageToBackground(img,element){ 
 
    var c=document.createElement('canvas'); 
 
    var ctx=c.getContext('2d'); 
 
    c.width=img.width; 
 
    c.height=img.height; 
 
    ctx.drawImage(img,0,0); 
 
    stackBlurCanvasRGBA(c,0,0,c.width,c.height,8) 
 
    element.style.background='url('+c.toDataURL()+')'; 
 
}
body{ background-color: ivory; } 
 
#myDiv{width:472px; height:286px; border:1px solid red;}
<script src="https://rawgit.com/flozz/StackBlur/master/StackBlur.js"></script> 
 
<h4>Please be patient while the image blurs and loads :-)</h4> 
 
<div id=myDiv width=472 height=286></div>

Примечание: Для использования StackBlurJS необходимо использовать context.getImageData, так что убедитесь, что im im возраст, который вы хотите размыть, подается в том же домене, что и на веб-странице. (Это требование безопасности для перекрестного происхождения).

+0

о, ваша последняя «заметка» очень плоха для меня. Я хочу использовать его для http://www.ihavenotv.com/ и все изображения с сторонних серверов :) –

+0

Ограничение кросс-оригинала существует для очень хороших соображений безопасности и не может быть нарушено или проработано. Вы должны заставить эти сторонние серверы согласиться обслуживать свои изображения с соответствующими заголовками, которые удовлетворяют ограничениям безопасности для разных целей. В противном случае вы не сможете размыть изображения с сторонних серверов, и вам придется перепроектировать ваше приложение. Stackoverflow @KenFyrstenberg включает в себя кодированное псевдо-размытие, которое соответствует ограничениям кросс-происхождения. Это не правда-размытие, но все равно выглядит красиво: https://github.com/epistemex/realtime-blur-js (Он закодировал несколько версий - вам нужно псевдо-размытие). – markE

+0

спасибо markE за пояснения. Можете ли вы построить jsfiddle для этого размытия в реальном времени, на фоне div (используя холст)? Я дам вам большое пиво, через paypal: P –

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