📄 cvi_bevel_lib.js
字号:
canvas.options = options; canvas.id = image.id; canvas.alt = image.alt; canvas.name = image.name; canvas.title = image.title; canvas.source = image.src; canvas.className = image.className; canvas.style.cssText = image.style.cssText; canvas.style.height = imageHeight+'px'; canvas.style.width = imageWidth+'px'; canvas.height = imageHeight; canvas.width = imageWidth; object.replaceChild(canvas,image); cvi_bevel.modify(canvas, options); } } } catch (e) { } } }, modify: function(canvas, options) { try { var radius = (typeof options['radius']=='number'?options['radius']:canvas.options['radius']); canvas.options['radius']=radius; var glow = (typeof options['glow']=='number'?options['glow']:canvas.options['glow']); canvas.options['glow']=glow; var shine = (typeof options['shine']=='number'?options['shine']:canvas.options['shine']); canvas.options['shine']=shine; var shade = (typeof options['shade']=='number'?options['shade']:canvas.options['shade']); canvas.options['shade']=shade; var glowcolor = (typeof options['glowcolor']=='string'?options['glowcolor']:canvas.options['glowcolor']); canvas.options['glowcolor']=glowcolor; var shinecolor = (typeof options['shinecolor']=='string'?options['shinecolor']:canvas.options['shinecolor']); canvas.options['shinecolor']=shinecolor; var shadecolor = (typeof options['shadecolor']=='string'?options['shadecolor']:canvas.options['shadecolor']); canvas.options['shadecolor']=shadecolor; var backcolor = (typeof options['backcolor']=='string'?options['backcolor']:canvas.options['backcolor']); canvas.options['backcolor']=backcolor; var fillcolor = (typeof options['fillcolor']=='string'?options['fillcolor']:canvas.options['fillcolor']); canvas.options['fillcolor']=fillcolor; var linear = (typeof options['linear']=='boolean'?options['linear']:canvas.options['linear']); canvas.options['linear']=linear; var noglow = (typeof options['noglow']=='boolean'?options['noglow']:canvas.options['noglow']); canvas.options['noglow']=noglow; var noshine = (typeof options['noshine']=='boolean'?options['noshine']:canvas.options['noshine']); canvas.options['noshine']=noshine; var noshade = (typeof options['noshade']=='boolean'?options['noshade']:canvas.options['noshade']); canvas.options['noshade']=noshade; var usemask = (typeof options['usemask']=='boolean'?options['usemask']:canvas.options['usemask']); canvas.options['usemask']=usemask; var ww = canvas.width, hh = canvas.height, ix = Math.round(Math.min(ww,hh)*0.05), iy = ix, iw = ww-(2*ix), ih = hh-(2*iy); if(document.all && document.namespaces && !window.opera) { if(canvas.tagName.toUpperCase() == "VAR") { var glo = Math.min(glow==0?40:glow*1.2,100), sio = shine==0?0.5:shine/100, sao = shade==0?0.5:shade/100, rdi = Math.max(Math.min(radius==0?20:radius,40),20); var glc = glowcolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?glowcolor:'#000000'; var sic = shinecolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?shinecolor:'#ffffff'; var sac = shadecolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?shadecolor:'#000000'; var bac = backcolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?backcolor:'#0080ff'; var flc = fillcolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?fillcolor:backcolor; var mask = usemask?"filter:progid:DXImageTransform.Microsoft.Alpha(opacity=100,finishopacity=50,style=3);":""; var head, fill, foot='</v:group>', high='', ishine='', left='', right='', ishade='', iglow='', oline=''; var f, p, r, t, ro, ri, outer, inner; if(!noglow) { outer = Math.max(Math.min(radius,40),20); ro = Math.round(Math.min(iw,ih)*(outer/100)); ri = Math.round(ro*0.8); r = ri/2; inner = getRadius(ri/2,iw-ri,ih-ri); outer = outer*0.8; ro = Math.round(ro*0.8); }else { outer = Math.max(Math.min(radius,40),20); ix = 0; iy = 0; iw = ww; ih = hh; ri = Math.round(Math.min(iw,ih)*(outer/100)); r = ri/2; inner = getRadius(ri/2,iw-ri,ih-ri); ro = ri; } t = Math.round(Math.max(Math.round(iw/200),1)); f = 0; if(!noglow) {iglow = '<v:roundrect arcsize="'+outer+'%" strokeweight="0" filled="t" stroked="f" fillcolor="'+glc+'" style="filter:Alpha(opacity='+glo+'), progid:dxImageTransform.Microsoft.Blur(PixelRadius='+(ix/2)+',MakeShadow=false); zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:0px;left:0px;width:'+(iw+ix)+'px;height:'+(ih+iy)+'px;"><v:fill color="'+glc+'" opacity="1" /></v:roundrect>';} fill = '<v:roundrect arcsize="'+outer+'%" strokeweight="0" filled="t" stroked="f" fillcolor="#ffffff" style="zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:'+iy+'px;left:'+ix+'px;width:'+iw+'px;height:'+ih+'px;"><v:fill method="linear" type="gradient" angle="0" color="'+flc+'" color2="'+bac+'" /></v:roundrect>'; fill += '<v:roundrect arcsize="'+outer+'%" strokeweight="0" filled="t" stroked="f" style="'+mask+'zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:'+iy+'px;left:'+ix+'px;width:'+iw+'px;height:'+ih+'px;"><v:fill src="'+canvas.source+'" type="frame" /></v:roundrect>'; if(!noshade) { ishade = '<v:shape strokeweight="0" filled="t" stroked="f" fillcolor="#000000" coordorigin="0,0" coordsize="'+ro+','+ro+'" path="m '+ro+','+ro+' l 0,'+ro+' qy '+ro+',0 l '+ro+','+ro+' x e" style="position:absolute;margin: -1px 0 0 -1px;top:'+iy+'px;left:'+ix+'px;width:'+ro+'px;height:'+ro+'px;"><v:fill method="'+(linear?"sigma":"linear")+'" type="gradientradial" focus="1" focusposition="1,1" focussize="0.5,0.5" color="#'+sac+'" opacity="0" color2="#'+sac+'" o:opacity2="'+sao+'" /></v:shape>'; ishade += '<v:shape strokeweight="0" filled="t" stroked="f" fillcolor="#000000" coordorigin="0,0" coordsize="'+ro+','+ro+'" path="m 0,'+ro+' l '+ro+','+ro+' qy 0,0 l 0,'+ro+' x e" style="position:absolute;margin: -1px 0 0 -1px;top:'+iy+'px;left:'+(ix+iw-ro)+'px;width:'+ro+'px;height:'+ro+'px;"><v:fill method="'+(linear?"sigma":"linear")+'" type="gradientradial" focus="1" focusposition="-0.5,1" focussize="0.5,0.5" color="#'+sac+'" opacity="0" color2="#'+sac+'" o:opacity2="'+sao+'" /></v:shape>'; ishade += '<v:shape strokeweight="0" filled="t" stroked="f" fillcolor="#000000" coordorigin="0,0" coordsize="'+ro+','+ro+'" path="m '+ro+',0 l '+ro+','+ro+' qx 0,0 l '+ro+',0 x e" style="position:absolute;margin: -1px 0 0 -1px;top:'+(iy+ih-ro)+'px;left:'+ix+'px;width:'+ro+'px;height:'+ro+'px;"><v:fill method="'+(linear?"sigma":"linear")+'" type="gradientradial" focus="1" focusposition="1,-0.5" focussize="0.5,0.5" color="#'+sac+'" opacity="0" color2="#'+sac+'" o:opacity2="'+sao+'" /></v:shape>'; ishade += '<v:shape strokeweight="0" filled="t" stroked="f" fillcolor="#000000" coordorigin="0,0" coordsize="'+ro+','+ro+'" path="m 0,0 l '+ro+',0 qy 0,'+ro+' l 0,0 x e" style="position:absolute;margin: -1px 0 0 -1px;top:'+(iy+ih-ro)+'px;left:'+(ix+iw-ro)+'px;width:'+ro+'px;height:'+ro+'px;"><v:fill method="'+(linear?"sigma":"linear")+'" type="gradientradial" focus="1" focusposition="-0.5,-0.5" focussize="0.5,0.5" color="#'+sac+'" opacity="0" color2="#'+sac+'" o:opacity2="'+sao+'" /></v:shape>'; ishade += '<v:rect strokeweight="0" filled="t" stroked="f" fillcolor="#000000" style="position:absolute;margin: -1px 0 0 -1px;top:'+iy+'px;left:'+(ix+ro-f)+'px;width:'+(iw-ro-ro+f+f)+'px;height:'+ro+'px;"><v:fill method="'+(linear?"sigma":"linear")+'" type="gradient" angle="0" color="#'+sac+'" opacity="0" color2="#'+sac+'" o:opacity2="'+sao+'" /></v:rect>'; ishade += '<v:rect strokeweight="0" filled="t" stroked="f" fillcolor="#000000" style="position:absolute;margin: -1px 0 0 -1px;top:'+(iy+ro-f)+'px;left:'+ix+'px;width:'+ro+'px;height:'+(ih-ro-ro+f+f)+'px;"><v:fill method="'+(linear?"sigma":"linear")+'" type="gradient" angle="90" color="#'+sac+'" opacity="0" color2="#'+sac+'" o:opacity2="'+sao+'" /></v:rect>'; ishade += '<v:rect strokeweight="0" filled="t" stroked="f" fillcolor="#000000" style="position:absolute;margin: -1px 0 0 -1px;top:'+(iy+ro-f)+'px;left:'+(ix+iw-ro)+'px;width:'+ro+'px;height:'+(ih-ro-ro+f+f)+'px;"><v:fill method="'+(linear?"sigma":"linear")+'" type="gradient" angle="270" color="#'+sac+'" opacity="0" color2="#'+sac+'" o:opacity2="'+sao+'" /></v:rect>'; ishade += '<v:rect strokeweight="0" filled="t" stroked="f" fillcolor="#000000" style="position:absolute;margin: -1px 0 0 -1px;top:'+(iy+ih-ro)+'px;left:'+(ix+ro-f)+'px;width:'+(iw-ro-ro+f+f)+'px;height:'+ro+'px;"><v:fill method="'+(linear?"sigma":"linear")+'" type="gradient" angle="180" color="#'+sac+'" opacity="0" color2="#'+sac+'" o:opacity2="'+sao+'" /></v:rect>'; oline = '<v:roundrect arcsize="'+outer+'%" filled="f" stroked="t" style="zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:'+iy+'px;left:'+ix+'px;width:'+iw+'px;height:'+ih+'px;"><v:stroke weight="1" style="single" color="#'+sac+'" opacity="'+sao+'" /></v:roundrect>'; } if(!noshine) { ishine = '<v:roundrect arcsize="'+inner+'" strokeweight="0" filled="t" stroked="f" fillcolor="#ffffff" style="zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:'+(iy+(ri/2))+'px;left:'+(ix+(ri/2))+'px;width:'+(iw-ri)+'px;height:'+(ih-ri)+'px;"><v:fill method="linear sigma" type="gradient" angle="0" color="#'+sic+'" opacity="0" color2="#'+sic+'" o:opacity2="'+sio+'" /></v:roundrect>'; r=Math.round(r); p = "m 0,"+r+" l 0,"+(ih-ri-r)+","+t+","+(ih-ri-r)+","+t+","+r+" qy "+r+","+t+" l "+(iw-ri-r)+","+t+" qx "+(iw-ri-t)+","+r+" l "+(iw-ri-t)+","+(ih-ri-r)+","+(iw-ri)+","+(ih-ri-r)+","+(iw-ri)+","+r+" qy "+(iw-ri-r)+",0 l "+r+",0 qx 0,"+r+" x e"; high = '<v:shape strokeweight="0" stroked="f" filled="t" coordorigin="0,0" coordsize="'+(iw-ri)+','+(ih-ri)+'" path="'+p+'" style="zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:'+(iy+(ri/2))+'px;left:'+(ix+(ri/2))+'px;width:'+(iw-ri)+'px;height:'+(ih-ri)+'px;"><v:fill method="linear sigma" type="gradient" angle="0" color="#'+sic+'" opacity="0" color2="#'+sic+'" o:opacity2="'+sio+'" /></v:shape>'; left = '<v:oval stroked="f" strokeweight="0" style="zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:'+(iy+(ri/8))+'px;left:'+(ix+(ri/8))+'px;width:'+ri+'px;height:'+ri+'px;"><v:fill method="any" type="gradientradial" focus="0" focussize="0,0" focusposition="0.5,0.5" on="t" color="#'+sic+'" opacity="0" color2="#'+sic+'" o:opacity2="'+sio+'" /></v:oval>'; right = '<v:oval stroked="f" strokeweight="0" style="zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:'+(iy+(ri/8))+'px;left:'+(ix+iw-(ri*1.125))+'px;width:'+ri+'px;height:'+ri+'px;"><v:fill method="any" type="gradientradial" focus="0" focussize="0,0" focusposition="0.5,0.5" on="t" color="#'+sic+'" opacity="0" color2="#'+sic+'" o:opacity2="'+sio+'" /></v:oval>'; } head = '<v:group style="zoom:1;display:'+canvas.dpl+';margin:-1px 0 0 -1px;padding:0;position:relative;width:'+ww+'px;height:'+hh+'px;" coordsize="'+ww+','+hh+'"><v:rect strokeweight="0" filled="t" stroked="f" fillcolor="#ffffff" style="zoom:1;margin:-1px 0 0 -1px;padding:0;position:absolute;top:0px;left:0px;width:'+ww+'px;height:'+hh+'px;"><v:fill color="#ffffff" opacity="0.0" /></v:rect>'; canvas.innerHTML = head+iglow+fill+ishade+ishine+high+left+right+oline+foot; } }else { if(canvas.tagName.toUpperCase() == "CANVAS" && canvas.getContext("2d")) { var glo = glow==0?0.33:glow/100, sio = shine==0?0.5:shine/100, sao = shade==0?0.5:shade/100, rdi = Math.max(Math.min(radius==0?0.2:radius/100,0.4),0.2); var glc = getRGB(glowcolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?glowcolor:'#000000'); var sic = getRGB(shinecolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?shinecolor:'#ffffff'); var sac = getRGB(shadecolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?shadecolor:'#000000'); var bac = getRGB(backcolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?backcolor:'#0080ff'); var flc = getRGB(fillcolor.match(/^#[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]$/i)?fillcolor:backcolor); var style='', r = Math.max(Math.min(rdi,0.4),0.2), otr = Math.round(Math.min(iw,ih)*r), mdr = Math.round(otr*0.8), inr = Math.round(mdr/2); if(noglow) {ix = 0; iy = 0; iw = ww; ih = hh; mdr = Math.round(Math.min(iw,ih)*r); inr = Math.round(mdr/2);} var context = canvas.getContext("2d"); var img = new Image(); img.onload = function() { context.clearRect(0,0,ww,hh); context.globalCompositeOperation = "source-over"; context.save(); if(!noglow) applyGlow(context,0,0,ww,hh,otr,glo,glc); applyForm(context,ix,iy,iw,ih,mdr,true,r); context.clip(); style = context.createLinearGradient(ix,iy,ix,iy+ih); style.addColorStop(0,'rgba('+bac+',1)'); style.addColorStop(1,'rgba('+flc+',1)'); context.fillStyle = style; context.fill(); context.fillStyle = 'rgba(0,0,0,0)'; context.fillRect(0,0,ww,hh); context.drawImage(img,0,0,ww,hh); if(usemask) { context.globalCompositeOperation = "destination-out"; applyMask(context,ix,iy,iw,ih,mdr,1,'0,0,0'); context.globalCompositeOperation = "destination-over"; context.fillStyle = style; context.beginPath(); context.rect(ix,iy,iw,ih); context.closePath(); context.fill(); } if(!noshade) { context.globalCompositeOperation = window.opera?"source-over":"source-atop"; context.fillStyle = 'rgba(0,0,0,0)'; context.fillRect(ix,iy,iw,ih); applyMask(context,ix,iy,iw,ih,mdr,sao,sac,false,linear); applyForm(context,ix,iy,iw,ih,mdr,true,r); context.strokeStyle = 'rgba('+sac+','+sao+')'; context.lineWidth = 1; context.stroke(); } if(!noshine) { context.globalCompositeOperation = window.opera?"source-over":"source-atop"; applyForm(context,ix+inr,iy+inr,iw-mdr,ih-mdr,inr); if(!window.opera) {context.globalCompositeOperation = "lighter"; sio = sio*0.5; } style = context.createLinearGradient(0,inr,0,ih-mdr); style.addColorStop(0,'rgba('+sic+','+sio+')'); style.addColorStop(0.25,'rgba('+sic+','+(sio/2)+')'); style.addColorStop(1,'rgba('+sic+',0)'); context.fillStyle = style; context.fill(); applyForm(context,ix+inr,iy+inr,iw-mdr,ih-mdr,inr); style = context.createLinearGradient(0,inr,0,ih-mdr); style.addColorStop(0,'rgba('+sic+','+(sio*1.25)+')'); style.addColorStop(0.25,'rgba('+sic+','+(sio/1.5)+')'); style.addColorStop(1,'rgba('+sic+',0)'); context.lineWidth = Math.max(Math.round(iw/200),0.5); context.strokeStyle = style; context.stroke(); applyFlex(context,ix+inr,iy+inr,iw-mdr,ih-mdr,inr,sio,sic); } context.restore(); } img.src = canvas.source; } } } catch (e) { } }, replace : function(canvas) { var object = canvas.parentNode; var img = document.createElement('img'); img.id = canvas.id; img.alt = canvas.alt; img.title = canvas.title; img.src = canvas.source; img.className = canvas.className; img.style.cssText = canvas.style.cssText; img.style.height = canvas.height+'px'; img.style.width = canvas.width+'px'; object.replaceChild(img,canvas); }, remove : function(canvas) { if(document.all && document.namespaces && !window.opera) { if(canvas.tagName.toUpperCase() == "VAR") { cvi_bevel.replace(canvas); } }else { if(canvas.tagName.toUpperCase() == "CANVAS") { cvi_bevel.replace(canvas); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -