熊猫记仇表情在线生成代码

前言

今天闲的无聊,试着用Canvas做了时下比较流行的熊猫记仇不多说,直接放代码

DEMO

记仇

代码

成品

<!DOCTYPE html>
<h
<!--more-->
tml>
<head>
  <title>在线制作熊猫记仇表情包</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="shortcut icon" href="//cdn.hap5.top/photo/ico.png">
  <link rel="bookmark" href="//cdn.hap5.top/photo/ico.png">
  <script src="jc.js"></script>
<head>
<style>
.jichou_body{
        text-align: center;
}
.jichou_textarea{
        width: 416px;
        height: 216px;
}
</style>
<body>
<div class="jichou_body">
    <div><canvas id="jichou"></canvas></div>
    <div>
        <textarea class="jichou_textarea" placeholder="输入想要记录的字,单行超过显示限制记得回车换行" oninput="drawJichou(this)"></textarea>
    </div>
    <div><a href="javascript:;" id="saveCanvas">保存</button></a>
</div>

拆解

HTML:

<div class="jichou_body">
    <div><canvas id="jichou"></canvas></div>
    <div>
        <textarea class="jichou_textarea" placeholder="输入想要记录的字,单行超过显示限制记得回车换行" oninput="drawJichou(this)"></textarea>
    </div>
    <div><a href="javascript:;" id="saveCanvas">保存</button></a>
</div>

CSS:

.jichou_body{
        text-align: center;
}
.jichou_textarea{
        width: 416px;
        height: 216px;
}

JS:

var imgSrc = [
    "jcimg.png"//记仇图片路径按需填写
]
var images = [];
 
function loading(){
    var imgLength = imgSrc.length;
    var loadingNum = 0;
    for(var i=0;i<imgLength;i++){
        images[i] = new Image();
        images[i].src = imgSrc[i];
        images[i].onload = function(){
            loadingNum++;
            if(loadingNum===imgLength){
                initImg();
            }
        }
    }
}
//以上读取图片
function initImg(){//初始化
    var c=document.getElementById("jichou");
    var ctx=c.getContext("2d");
    ctx.fillStyle="#ffffff";
    ctx.fillRect(0,0,c.width,c.height);
    c.width = 416;//根据记仇图片宽度写
    c.height = 336;//根据记仇图片高度写
    ctx.drawImage(images[0],0,0);
    saveCanvas();
}
function drawJichou(obj){//绘制文字
    var c=document.getElementById("jichou");
    var ctx=c.getContext("2d");
    var inputText = obj.value;
    var textArr = inputText.split("\n");
    var h = 336;
    console.log(textArr);
    for(var i=0;i<textArr.length;i++){
        h = 336+12+24*i;
    }
    c.width = 416;
    c.height = h;
    ctx.fillStyle="#ffffff";
    ctx.fillRect(0,0,c.width,c.height);
    ctx.drawImage(images[0],0,0);
    for(var i=0;i<textArr.length;i++){
        ctx.fillStyle="#000000";
        ctx.font="16px SimSun";
        ctx.fillText(textArr[i],10,336+24*i);
    }
    saveCanvas();
} 
function saveCanvas(){//保存图片
    var canvas = document.getElementById("jichou");
    var image = canvas.toDataURL("image/png"); 
    var link = document.getElementById("saveCanvas");
    link.download = "记仇.png";
    link.href = image.replace("image/png", "image/octet-stream");
}
loading();

记仇图片下载

记仇图片下载:https://cdn.hap5.top/photo/jcimg.png
放在同一个目录即可

自己搜集的一些免费天气API

前言

最近无聊的很,也不知该写些啥,没有素材,于是只能转载了。。嘿嘿嘿

正文

最近迷上了抓一些大公司暴露出来的接口(比如搜索一些东西之类的)

下面分享一下自己抓到的一些天气API(例如: http://www.iv1.pw/tools/weather)

ps:当然还有

Read more

Typecho 用一个程序建多个网站

前言

有时候做主题演示站点只能一个一个程序新搭建,这样比较麻烦,今天给大家带来一种新的方法使得只安装一个程序,搭建多个网站!

分析

首先绑定两个域名(以下称 A域名 和 B域名)到空间目录上。
接着把typecho上传到空间里,打开 A域名 时,typecho就会自动检测并开始安

Read more

Markdown编辑器语法

前言

Markdown是一种轻量级的「标记语言」,通常为程序员群体所用,目前它已是全球最大的技术分享网站 GitHub 和技术问答网站 StackOverFlow 的御用书写格式。

what can i do

① 代码高亮
![](https://cdn.xsiy.ltd/pho

Read more

[Typecho插件] 新评论微信提醒 Comment2Wechat V2.0

##Comment2Wechat
一个 Typecho 评论微信提醒插件,修改自原版本,增加了一些功能以及设置。使用了Easy大大的开源项目 serverchan。

功能

每当有人评论你的文章时,可以通过 Server酱 推送到你

Read more

[Stylish] 一个可以让网站变得萌的插件

Stylish 使用教程

介绍

Stylish 是给指定网站应用自己或他人编写的css样式的一款插件,根据作者的设定还可以根据个人需求进行一定程度的定制,Chrome、Firefox、Opera都可以使用。(ie表示很绝望

下载

  • Chrome:[Crx4chrome](h
Read more

XSY的API!

##前言
你要用的话!这些都别看了直接访问:这里

百度翻译API

获取百度翻译API,缓存翻译内容,支持多国语言

require 'fy/Api.php';

// 使用DEMO
$obj = 
Read more

Git 常用命令速查表(二)

git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git commit -am “init” 提交并且加注释
git remote add

Read more