canvas学习——第三天

这篇博客介绍了如何利用HTML5的Canvas API将文字转化为图片,并进行上传服务器的实现过程。作者通过设置字体、字号、颜色等属性,绘制文字到画布上,然后转换为PNG图片并以FormData形式上传。虽然目前存在文字过多导致挤压的问题,但这是一个初步的实现,后续还需优化。
摘要由CSDN通过智能技术生成

canvas学习第三天

使用canvas将文字生成图片
在这里插入图片描述
最后的结果就是类似这个样子,生成图片后将图片上传服务器后大功告成,正好可以使用之前学的canvas相关,ok,直接上代码:

    drawLogo() {
      const text = this.text // 要生成图片的文字
      const font = '微软雅黑' // 字体
      const fontSize = '70' // 字号
      const fontCor = '#5076B8'// 颜色
      // 创建画布
      const canvas = document.createElement('canvas')
      // 绘制文字环境
      const context = canvas.getContext('2d')
      // 设置字体
      context.font = font
      // 获取字体宽度
      const width = context.measureText(text).width
      // 画布宽度
      canvas.width = 702
      // 画布高度
      canvas.height = 180
      // 填充背景颜色
      context.fillStyle = '#f3f3f3'
      // 绘制矩形
      context.fillRect(0, 0, canvas.width, canvas.height)
      // 设置字体
      context.font = fontSize + 'px ' + font
      // 设置水平对齐方式
      context.textAlign = 'center'
      // 设置垂直对齐方式
      context.textBaseline = 'middle'
      // 设置字体颜色
      context.fillStyle = fontCor
      // 绘制文字(参数:要写的字,x坐标,y坐标,最大宽度)
      context.fillText(text, canvas.width / 2, canvas.height / 2, canvas.width - 70)
      // 生成图片URL
      const dataUrl = canvas.toDataURL('image/png')
      const formData = new FormData()
      //将URL转换为file类型
      formData.append('file', dataURLtoFile(dataUrl, 'file'))
	  //上传
      this.upload(formData)
    }

大致是这个样子,因为上传图片时是formdata类型,所以把base64转换成了file类型,当然,这个功能还是有些小问题,比如文字数量太多的话字会挤在一起,还是需要后续优化的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别出声~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值