最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js canvas實(shí)現(xiàn)圓角圖片

 更新時(shí)間:2021年09月01日 11:59:20   作者:萬(wàn)劍  
這篇文章主要為大家詳細(xì)介紹了js canvas實(shí)現(xiàn)圓角圖片效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了js canvas實(shí)現(xiàn)圓角圖片的具體代碼,供大家參考,具體內(nèi)容如下

圓角圖片的代碼實(shí)現(xiàn):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body style="background: rgba(199,237,204,1)">
 
<div style="display:flex; flex-direction: row">
 
    <!--通過(guò)style方式為canvas設(shè)置寬高在火狐瀏覽器上導(dǎo)致繪制內(nèi)容縱向拉伸。。。-->
    <canvas id="drawing" width="400px" height="400px">canvas to draw</canvas>
 
    <pre id="container" style="margin: 10px"/>
 
    <img src=//img.jbzj.com/file_images/article/202109/202191115608734.jpg>
</div>
</body>
<script type="text/javascript">
 
    window.οnlοad=function () {
        var drawing = document.getElementById('drawing');
 
        if (drawing.getContext) {
            print('support')
            addRoundRectFunc();
            var context = drawing.getContext('2d');
            draw(context);
 
        } else {
            print('not ')
        }
    }
 
 
    function draw(context) {
        context.fillStyle = 'red';
 
        var image = document.images[0];
 
        context.roundRect(0,0,image.width/2,image.height/2,30,true)
 
        context.globalCompositeOperation='source-in';
        context.drawImage(image, 0, 0, image.width / 2, image.height / 2)
        // toImage();
 
    }
 
    function addRoundRectFunc() {
        CanvasRenderingContext2D.prototype.roundRect =
            function (x, y, width, height, radius, fill, stroke) {
                if (typeof stroke == "undefined") {
                    stroke = true;
                }
                if (typeof radius === "undefined") {
                    radius = 5;
                }
                this.beginPath();
                this.moveTo(x + radius, y);
                this.lineTo(x + width - radius, y);
                this.quadraticCurveTo(x + width, y, x + width, y + radius);
                this.lineTo(x + width, y + height - radius);
                this.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);
                this.lineTo(x + radius, y + height);
                this.quadraticCurveTo(x, y + height, x, y + height - radius);
                this.lineTo(x, y + radius);
                this.quadraticCurveTo(x, y, x + radius, y);
                this.closePath();
                if (stroke) {
                    this.stroke();
                }
                if (fill) {
                    this.fill();
                }
            };
    }
 
    function toImage() {
        var imageUri = drawing.toDataURL('image/png');
        var imageTag = document.createElement('img');
        imageTag.style = 'margin:10px;width:200px;height:200px'
        imageTag.src = imageUri;
        document.body.appendChild(imageTag)
    }
 
    function print(txt) {
        document.getElementById("container").innerHTML += ('\n') + txt;
    }
 
    document.body.onclick = function () {
        window.location.reload()
    }
    console.log = print;
 
 
</script>
 
 
</html>

效果圖:

補(bǔ)充一段使用小代碼:canvas 生成圓角圖片(頭像等)

circleImg(ctx, img, x, y, r) {
    ctx.save();
    var d =2 * r;
    var cx = x + r;
    var cy = y + r;
    ctx.arc(cx, cy, r, 0, 2 * Math.PI);
    ctx.clip();
    ctx.drawImage(img, x, y, d, d);
    ctx.restore();
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Javascript自定義事件詳解

    Javascript自定義事件詳解

    這篇文章主要介紹了Javascript自定義事件,本質(zhì)就是觀察者模式,好處就是將綁定事件和觸發(fā)事件相互隔離開等等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 一個(gè)js封裝的不錯(cuò)的選項(xiàng)卡效果代碼

    一個(gè)js封裝的不錯(cuò)的選項(xiàng)卡效果代碼

    在論壇里經(jīng)??吹饺藛?wèn)選項(xiàng)卡或者類似選項(xiàng)卡的切換效果 這里封裝了個(gè)js,希望對(duì)大家有用 所有代碼都在下面了 如果有錯(cuò)誤或者建議,可以回貼告訴我,謝謝
    2008-02-02
  • input鏈接頁(yè)面、打開新網(wǎng)頁(yè)等等的具體實(shí)現(xiàn)

    input鏈接頁(yè)面、打開新網(wǎng)頁(yè)等等的具體實(shí)現(xiàn)

    input可以鏈接到某頁(yè)、返回、打開新網(wǎng)頁(yè)、打開無(wú)邊框的新窗口等等,本文整理了一些,感興趣的朋友可以參考下
    2013-12-12
  • Bootstrap圖片輪播效果詳解

    Bootstrap圖片輪播效果詳解

    這篇文章主要為大家詳細(xì)介紹了Bootstrap圖片輪播效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • JS暴虐查找法簡(jiǎn)潔版

    JS暴虐查找法簡(jiǎn)潔版

    有過(guò)相關(guān)經(jīng)驗(yàn)的朋友都知道,Jscript的效率畢竟有限,在數(shù)組中查找數(shù)據(jù)時(shí)如果用常規(guī)的算法來(lái)做執(zhí)行起來(lái)會(huì)很慢。
    2008-07-07
  • 解析從小程序開發(fā)者工具源碼看原理實(shí)現(xiàn)

    解析從小程序開發(fā)者工具源碼看原理實(shí)現(xiàn)

    小程序的架構(gòu)設(shè)計(jì)與web技術(shù)還是有一定的差別,其吸取了web技術(shù)的一些優(yōu)勢(shì),同時(shí)也摒棄web技術(shù)中體驗(yàn)等不好的地方。下面通過(guò)問(wèn)題的形式來(lái)說(shuō)說(shuō)小程序架構(gòu)中的一些設(shè)計(jì)點(diǎn)
    2021-06-06
  • JavaScript復(fù)制文案到剪貼板小技巧

    JavaScript復(fù)制文案到剪貼板小技巧

    這篇文章主要為大家介紹了JavaScript復(fù)制文案到剪貼板實(shí)現(xiàn)小技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • JS實(shí)現(xiàn)獲取剪貼板內(nèi)容的方法

    JS實(shí)現(xiàn)獲取剪貼板內(nèi)容的方法

    這篇文章主要介紹了JS實(shí)現(xiàn)獲取剪貼板內(nèi)容的方法,涉及javascript基于clipboardData操作剪貼板的相關(guān)技巧,需要的朋友可以參考下
    2016-06-06
  • 老生常談js動(dòng)態(tài)添加事件--- 事件委托

    老生常談js動(dòng)態(tài)添加事件--- 事件委托

    下面小編就為大家?guī)?lái)一篇老生常談js動(dòng)態(tài)添加事件--- 事件委托。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • JS實(shí)現(xiàn)的樣式切換功能tableCSS實(shí)例

    JS實(shí)現(xiàn)的樣式切換功能tableCSS實(shí)例

    這篇文章主要介紹了JS實(shí)現(xiàn)的樣式切換功能tableCSS,結(jié)合實(shí)例形式分析了js頁(yè)面元素遍歷與樣式動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2016-12-12

最新評(píng)論

惠来县| 宣城市| 巴楚县| 余庆县| 西贡区| 北海市| 新河县| 吉隆县| 德昌县| 广水市| 安岳县| 永泰县| 新乡县| 巧家县| 大理市| 泾源县| 鄯善县| 东乡族自治县| 上饶市| 新丰县| 措美县| 广宗县| 怀安县| 泾阳县| 喀喇沁旗| 法库县| 永川市| 信宜市| 绥中县| 大埔区| 兴城市| 遂川县| 天镇县| 渝北区| 双城市| 郎溪县| 陇南市| 孟村| 贺州市| 鄯善县| 通江县|