台词生成器 (html5 版)

2023-10-27

最近经常看到别人 PS 来恶搞"泰囧"电影中的台词,觉得挺好玩的

 

先上效果图:

就想用 html5 自己也做一个来玩玩,查了下 API,发现还是挺简单的。

context.fillText(text, x, y, width)

参数:

text: 要生成的文字

x: 生成文字的 x 坐标

y: 生成文字的 y 坐标

width: 生成文字的宽度,超过会自动换行

主要代码:

html:

<canvas id="canvas" width="360" height="607" class="fl"></canvas>
<div class="fl ml10">
    <input type="text" placeholder="上了5天班?" maxlength="20" />
    <input type="text" placeholder="以为今天星期五吧?" maxlength="20" />
    <input type="text" placeholder="今天是星期三!哈哈哈哈!" maxlength="20" />
    <button id="create">生成</button>
</div>

js:

context.drawImage(image, 0, 0);
context.fillStyle = '#ffffff';
context.font = 'bold 20px 微软雅黑';
$inputs.each(function(i) {
    var text = $(this).val() || $(this).attr('placeholder');
    context.fillText(text, (canvas.width - text.length * 20) / 2, 200 * (i + 1) - 10, canvas.width);
});


源代码(当然,请用支持 html5 的浏览器):demo
http://wenzhixin.net.cn/2013/01/10/fill_text

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

台词生成器 (html5 版) 的相关文章

  • Chrome 中的性能问题

    我目前正在从事一个相对较大的项目 使用 AngularJs 构建 应用程序的一部分是一个表单 您可以向其中添加任意数量的页面 不幸的是 添加了很多不必要的垃圾 即表示表单模型的对象可能会变得非常大 在某些时候 Chrome 基本上无法处理它
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 图像无法在带有 DOM 的 IE 中加载:控制台中的 7009 错误(无法解码)

    当在 IE 中的单个页面上加载许多图像时 在 IE11 中重现 其中一些图像开始加载失败 并在控制台中出现类似以下警告的内容 DOM7009 无法解码 URL 处的图像 某些唯一的 url 当我查看网络流量时 似乎确实从服务器收到了每个图像
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • 将 GMT 时间转换为当地时间

    我以这种格式从我的服务器获取 GMT 时间 Fri 18 Oct 2013 11 38 23 GMT 我的要求是使用Javascript将此时间转换为本地时间 例如 如果用户来自印度 首先我需要采用时区 5 30并将其添加到我的服务器时间并
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 为什么我们在打字稿中使用 HTMLInputElement ?

    我们为什么使用 document getElementById ipv as HTMLInputElement value 代替 document getElementById ipv value 功能getElementById返回具有类
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 表格行未扩展到全宽

    我有一个表格 当我将表格的宽度设置为 100 并将表格行的宽度设置为 100 时 没有任何反应或宽度发生变化 Table Normal position relative display block margin 10px auto pad
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • 使用 MongoDB 和 Nodejs 插入和查询日期

    我需要一些帮助在 mongodb 和 nodejs 中按日期查找记录 我将日期添加到抓取脚本中的 json 对象 如下所示 jsonObj last updated new Date 该对象被插入到 mongodb 中 我可以看到如下 la
  • 如何确定所有角度2分量都已渲染?

    当所有 Angular2 组件完成渲染时 是否会触发一个角度事件 For jQuery 我们可以用 function 然而 对于 Angular2 当domready事件被触发 html 只包含角度组件标签 每个组件完成渲染后 domrea
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro

随机推荐

  • Apache Airflow --- Linux安装

    Apache Airflow Linux安装 1 Python Install 2 Mysql Install 3 Airflow Install 3 1 Run Locally 3 2 Pip3 install 3 2 Config My
  • QT多线程

    Qt多线程 1 QThread类 QThread类并不是代表一个新的线程 而是QT提供的一个接口 用于控制一个子线程 每个QThread的实例就代表着对一个新线程的一个控制类 对于第一次使用QT多线程的人 或许就会很迷惑很不适应 QThre
  • protobuf和protobuf-c的小试牛刀

    简介 一种更轻量的数据格式 protobuf protobuf的优点 更小 更快 更简单 支持多种编程语言 解析速度快 可扩展性强 区别 主要不含两个功能 因为protobuf支持的语言还不够完善 所以有一些语言并不在这个仓库中 所以需要下
  • [优化篇]OpenStack的Cinder后端存储技术——GlusterFS(2)

    上一篇我们已经创建了GlusterFS集群 接下来就是我们怎么在Cinder后端来添加GlusterFS存储 其实熟悉了前面介绍的添加NFS的朋友 在参考GlusterFS其实是一样的 我们只需要修改cinder的配置文件即可 1 在计算节
  • Mysql SQL分析优化

    慢SQL诱因 无索引 索引失效 锁等待 InnoDB支持行锁 MyISAM支持表锁 InnoDB支持行锁更适合高并发场景 但行锁有可能会升级为表锁 一种情况是在批量更新时 行锁是基于索引加的锁 如果在更新操作时 条件索引失效 那么行锁会升级
  • Linux环境下安装JDK

    1 windows主机先下载好jdk for linux 再通过FTP传输到虚拟机centos6 5 2 在虚拟机上对JDK压缩文件进行解压缩 命令 tar xzvf jdk 8u181 linux x64 tar gz C usr loc
  • 文件转base64

    1 根据URL下载文件 pdf 图片 并转换为Base64 package com jiayou peis official account biz utils import org apache commons io IOUtils im
  • 2023 IntelliJ IDEA下载、安装教程, 附详细图解

    文章目录 下载与安装IDEA 推荐阅读 下载与安装IDEA 首先先到官网下载最新版的IntelliJ IDEA 下载后傻瓜式安装就好了 官网下载地址 https www jetbrains com 1 下载完后在本地找到该文件 双击运行 i
  • 手把手教你实现一个JavaWeb项目:创建一个自己的网页博客系统(前端+后端)(一)

    一篇博客带你实现一个真正的项目 先来看看它是什么样式的 目录 1 大体步骤 1 创建Maven项目 2 引入依赖 3 创建必要的目录 4 编写代码 5 打包部署 基于SmartTomcat 6 在浏览器验证 2 具体代码实现 1 V 用户界
  • urllib.request.urlopen(req).read().decode解析http报文报“utf-8 codec can not decode”错处理

    老猿前期执行如下代码时报 utf 8 codec can t decode byte 错 代码及错误信息如下 gt gt gt import urllib request gt gt gt def mkhead header Accept
  • nestjs整合nest-status-monitor后监控页面webscoket访问400 404

    nestjs整合nest status monitor后监控页面webscoket访问400 404 Github https github com JYbill nest8 websocket7 status monitor Gitee
  • 线程诊断,找到cpu占用高的原因

    使用 top 命令 找到cpu占用率最高的进程pid 2 输入 ps H eo pid tid cpu grep 进程pid 由上图可以发现 占用率最高的pid为32655 找到占用率最高的线程 为32655 要换算成16进制为7f99 3
  • element-ui走马灯实现图片自适应

    elementUI走马灯实现图片自适应 等比缩放 使得图片缩小不挤压 放大不拉伸变形 解决方法的原理 监听屏幕视口大小如果 resize 发生改变了 就获取图片的高度height 然后渲染到页面 ElementUI 地址 https ele
  • arch/arm/boot/dts/imx50.dtsi:16:42: fatal error: dt-bindings/clock/imx5-clock.h: 没有那个文件或目录

    编译设备树出错 arch arm boot dts omap2 dtsi 11 35 fatal error dt bindings gpio gpio h No such file or directory 或者 arch arm boo
  • Ragnar Locker勒索软件团伙在Facebook上刊登Campari黑客的广告

    Ragnar Locker勒索软件运营商已经开始在Facebook上利用广告迫使受害者支付赎金 在2019年11月 勒索软件运营商已开始采用一种新的双重勒索策略 该策略首先由迷宫团伙 Maze gang 使用 即在加密受感染的系统之前 威胁
  • jsp里怎么获取input里的值 在function里用

    第一种 通过getElementById找到input节点 然后获取value属性 1 定义一个input节点
  • 使用 CloudFlare 免费 CDN 加速 WordPress

    具体使用参考文章 CloudFlare 免费 CDN 加速使用方法 你似乎来到了没有知识存在的荒原 知乎 CloudFlare 免费 CDN 优化指南 CloudFlare免费CDN优化指南 知乎 CloudFlare 加速 WordPre
  • Wireshark 抓包工具使用记录

    1 搜索 Wireshark 安装 注意要中途要安装 pcap 否则会提示 找不到网络 安装过程全部默认选项 2 抓取移动端软件接口包 在安装了Winpcap 的电脑上 分一个wifi 360wifi等等 用手机连接这个wifi 然后启动
  • Docker部署单点Elasticsearch与Kibana

    一 创建网络 因为需要部署kibana容器 因此需要让es和kibana容器互联 这里创建一个网络 docker network create es net 创建一个网络名称为 es net 二 拉取并加载镜像 方式一 docker pul
  • 台词生成器 (html5 版)

    最近经常看到别人 PS 来恶搞 泰囧 电影中的台词 觉得挺好玩的 先上效果图 就想用 html5 自己也做一个来玩玩 查了下 API 发现还是挺简单的 context fillText text x y width 参数 text 要生成的