【发布时间】:2015-06-20 14:19:47
【问题描述】:
如果可能的话,我想使用StackBlur.js 将 DIV 的背景设置为指定的图像,比如说这个: http://img.youtube.com/vi/2UphAzryVpY/mqdefault.jpg,但我真的不知道如何做到这一点。
【问题讨论】:
-
请分享您为实现此目标而编写的代码。
标签: jquery html canvas html5-canvas blur
如果可能的话,我想使用StackBlur.js 将 DIV 的背景设置为指定的图像,比如说这个: http://img.youtube.com/vi/2UphAzryVpY/mqdefault.jpg,但我真的不知道如何做到这一点。
【问题讨论】:
标签: jquery html canvas html5-canvas blur
由于所需的代码只有大约 7 行长……就在这里! :-)
这是一个如何使用 Quasimondo 的 StackBlur.js 模糊图像并将其设置为 div 的背景的示例:
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,因此请确保您想要模糊的任何图像都与您的网页在同一个域中提供。 (这是跨域安全要求)。
【讨论】: