导航

萌即是正义!时不时分享一些ACG活动记录与有趣代码的小站!

侧边栏
热门文章
1推文
页面切换更流畅的维基萌博客系统0.24.1版本发布啦! 为了减少路由跳转导致时的页面抖动,增加了一些过渡动画当作缓冲。 但是因为nuxt3自带的页面切换动画会导致接口被多次调用,于是只能自己手搓了一个,缺点就是动画的时间不能很长,不过目前看着效果还行。 另外有大佬希望能显示当前博客系统的版本,就增加了版本显示,可以在管理后台首页以及博客底部看到。同时为了照顾不想在博客端显示版本号的用户增加了博客端是否显示版本号的选项。 具体更新内容请见:https://github.com/eeg1412/wikimoeNodeJSBlog/releases/tag/v0.24.1
热度
559
2博文
梦回2024年的那个夏天——everlasting flowers钢琴音乐会「Rassembler」
热度
468
3博文
如何使用Docker一键部署猛男自用的维基萌博客lite版
热度
455
4博文
探访《蜡笔小新》老家——春日部游记
热度
143
5页面
友链
热度
117
6页面
游戏
热度
104
7推文
一晃眼正式进入2025年的蛇年春节了呢。祝各位大佬新春快乐!
热度
78
8博文
让智能AI(waifulabs)来为你生成老婆吧!
热度
78
9博文
手把手从零开始搭建《泰拉瑞亚》(Terraria)服务器
热度
78
10推文
今天去看了首部初音未来的电影《剧场版 世界计划 破碎的世界与无法歌唱的未来》。 说是初音未来的电影,但其实是手游《世界计划》的剧场版。好像有挺多人看到是初音未来的电影就去看了,结果发现并不全是😅。其实在宣传海报中,初音未来后面的那些人才是主角。 不过,我也是那些没玩过手游的观众之一。其实整场看下来问题也不是很大,就是对于人物关系和世界观的设定可能会有些问题。电影其实也很贴心地在剧情开头,大致以剧情的形式展示了手游中的五个团体的人物及其性格,但感觉还是有些杯水车薪,约等于看个眼熟。 此次的电影是第一次购买应援场。所谓的应援场,就是能在电影院里像是听演唱会一样挥舞荧光棒和尽情呐喊。看着前排那些粉丝看到自己喜欢角色时的呐喊,以及演唱会环节的打CALL,应援场确实是很有意思的一种电影观看方式呢! 剧情方面,属于看了开头大概能猜到整部动画的剧情走向。不过,通过演唱会的气氛渲染,甚至还感受到了一丝丝的感动。 总体来说,对于手游的粉丝来说可能是嘉年华般的狂喜,对于没接触过手游的路人来说也能一定程度融入其中,属于一部不错的粉丝向电影(不管是手游粉丝还是初音未来粉丝)。 首周电影特典是CD和游戏内的兑换码。送CD这种形式还第一次遇到,官方大气!
热度
65
最新评论
广树
2025-02-01 21:02
@Xia:嗯,看到官方的有一篇回复里提到。这个模式仅针对465端口,587端口需要关闭。我之后加到提示里。
Xia
2025-02-01 21:00
@广树:发件成功了??? Σ(っ °Д °;)っ 关闭SSL就能使用587端口了
广树
2025-02-01 20:57
@Xia:试一下将SSL关闭后,使用587端口呢?
Xia
2025-02-01 20:55
@广树:啊?已经找到原因了嘛,大大的效率好高,我刚想把成功(失败)的发件的日志以及配置截图发给你嘞,那谢谢大大啦,加油加油~ヾ(≧∇≦*)ゝ
广树
2025-02-01 20:47
@Xia:似乎是我的当前代码还不支持587TLS的发送,只能支持465端口,以及非安全模式的25端口。587TLS端口需要研究研究怎么整。
正在攻略

logo_kai.jpg


PSN奖杯卡

PSN奖杯卡

赞助商广告

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

作者:广树时间:2018-05-17 12:51:26分类:JavaScript/jQuery/Vue

试着用Canvas做了时下比较流行的熊猫记仇


测试预览:


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 = [
	"jichouimg.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();


#canvas

donate.png

1210 x 50(蓝底).png

cloudcone