zoukankan      html  css  js  c++  java
  • 为图片添加文字 canvas

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>

    <body>
    <canvas id='myCanvas' ></canvas>
    <div id="imgCon" style="background: red"></div>
    <script type="text/javascript">


    getImg('济南店',8);
    function getImg(text,fsz){
    var img = new Image();
    img.src = './timg.png';
    img.onload=function(){//图片加载完成,才可处理
    var c = document.getElementById("myCanvas");
    c.width=img.width;
    c.height=img.height;
    var cxt = c.getContext("2d");
    cxt.fillStyle = "rgba(255, 255, 255, 0)";
    cxt.fillRect(0, 0, c.width, c.height);
    cxt.drawImage(img,0,0);
    cxt.save();
    cxt.font = fsz+"px Arial";
    cxt.textBaseline = 'middle';//更改字号后,必须重置对齐方式,否则居中麻烦。设置文本的垂直对齐方式
    cxt.textAlign = 'center';
    var tw = cxt.measureText(text).width;
    var ftop = c.height/2-5;
    var fleft = c.width/2;
    //cxt.fillStyle="#ff0000";
    //cxt.fillRect(fleft-tw/2,ftop-fsz/2,tw,fsz);//矩形在画布居中方式
    //cxt.fillStyle="#ffffff";
    cxt.fillText(text,fleft,ftop);//文本元素在画布居中方式
    cxt.strokeStyle = 'white';
    cxt.strokeText(text,fleft,ftop);//文字边框

    var ii=(new Image())
    ii.src=c.toDataURL('image/jpeg')
    document.getElementById("imgCon").appendChild(ii)


    };

    }

    /*getBase64('./timg1.png')
    function getBase64(url){
    //通过构造函数来创建的 img 实例,在赋予 src 值后就会立刻下载图片,相比 createElement() 创建 <img> 省去了 append(),也就避免了文档冗余和污染
    var Img = new Image(),
    dataURL='';
    Img.src=url;

    Img.onload=function(){ //要先确保图片完整获取到,这是个异步事件
    var canvas = document.createElement("canvas"), //创建canvas元素
    width=Img.width, //确保canvas的尺寸和图片一样
    height=Img.height;
    canvas.width=width;
    canvas.height=height;
    canvas.getContext("2d").drawImage(Img,0,0,width,height); //将图片绘制到canvas中


    dataURL=canvas.toDataURL('image/jpeg'); //转换图片为dataURL
    console.log(dataURL)
    };
    }*/

    </script></body></html>

  • 相关阅读:
    Android 传感器应用
    WebStrom9 体验nodejs
    Web前端框架 小记
    接入淘宝API(PHP版本)
    Android SDK 国内镜像
    Ubuntu14.04 搭建 node.js 环境(Binaries方式)
    C# 异常类型及对应异常类
    .net中序列化读写xml方法的总结
    ASp.NET Core Centos7运行环境搭建
    Linux Centos 常用命令
  • 原文地址:https://www.cnblogs.com/liuhao-web/p/9529559.html
Copyright © 2011-2022 走看看