小程序 canvas 海报(图片、字体封装方法)解决导出海报模糊问题

news/2025/1/12 23:43:28/

最近真是画了一堆canvas海报画到头秃~~~(偷偷说!!产品经理我恨你!!)

来和大家分享一波本媛写的canvas方法封装

1、封装图片

//width:图片长度
//height:图片高度
//x:离左边的距离
//y:离上边的距离
//img:图片路径imgChange(ctx, canvas, width, height, x, y, img) {const headerImg = canvas.createImage();headerImg.src = img;headerImg.onload = () => {ctx.drawImage(headerImg, x, y, width, height);}}

2、字体长度

//title:字体
//length:控制字体数量(用不到可以删了)
fontwidth(ctx, title,length) {var l = 18if(length){l = length}if (title.length > l) {title = title.substr(0, l) + '...'//超出一定字数隐藏}const onetitle = ctx.measureText(title)return onetitle.width
},

3、字体

//title:字体
//color:颜色
//size:字体样式(格式 同css font)
//fizelength:限制字体长度
font(ctx, title, x, y, color, size,fizelength) {ctx.fillStyle = colorif (size) {ctx.font = size}if(!fizelength){fizelength = 18}if (title.length > fizelength) {title = title.substr(0, fizelength) + '...'}ctx.fillText(title, x, y)}

重点!!!

图片导出时候会出现图片和字体模糊

在创建画布的时候记得

const dpr = wx.getSystemInfoSync().pixelRatio//获取当前设备像素

canvas.width = res[0].width * dpr

canvas.height = res[0].height * dpr

(宽高都要乘以dpr哦~~~)

--------------2022-06-09 

补充 :canvas的长宽需要和css中设置的长宽一致哦~~~

         (不一致的话,安卓没问题,ios海报导出会缺少的)

好了就是这样~~创建画布就不写了指步小程序文档


http://www.ppmy.cn/news/819015.html

相关文章

HTML怎么设艺术字体,ps海报艺术字体怎么弄(快速设计制作教程)

在于常规设计中我们只是打字体现不了创意,体现不出艺术海报效果视觉,有时候我们字可以多方面的表达展示,该怎么设计分割字中字的效果,来更突出体现。 【步骤一】 1、菜单栏---->文件---->新建“快捷键CtrlN”如图下&#xf…

折叠字体海报制作

近两年3D立体字很流行,但是我们今天要讲的是折叠字体,其实原理是很像的,再配上渐变光效就能制作成好看的海报,我们先来分别看看黑白稿和上色的效果图: 这首先我们打开ps,建立一个适合自己大小的背景图层&am…

海报字体如何设计?

很多新手设计师刚做海报设计的时候,经常直接使用字库的字体,觉得字体设计很难,所以很少自己去设计字体,其实字体设计有很多种形式,今天我们分享几种常见适用于标题的字体设计技巧,好看又实用,足够让你设计出好的标题字体,大家一起来学习。 01.直角柔化 这是一个超级容…

海报素材要去哪里找?

推荐几个非常好用的海报素材网站,希望能帮助到大家。 1、菜鸟图库 https://www.sucai999.com/?vNTYxMjky 专注免费素材下载,为新手设计师提供免费素材。网站有超多设计素材,平面、UI、电商淘宝等等。各种海报素材都能找到,全部…

淘宝海报常见的英文字体精选,让你的设计更显逼格!

海报设计中的字体设计,有的人会很不重视这点,往往会说:“字体有什么好设计的”,其实不然,字体设计好了,一张海报就上升一个档次!产品转化率也会有所提高!是不是、经常可以看到下面这…

深蓝学院C++基础与深度解析笔记 第 11 章 类

深蓝学院C基础与深度解析笔记 第 11 章 类 1. 结构体与对象聚合 **● 结构体:**对基本数据结构进行扩展,将多个对象放置在一起视为一个整体 – 结构体的声明与定义(注意定义后面要跟分号来表示结束) – 仅有声明的结构体是不完全…

【华为OD机试】数字反转打印【2023 B卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述: 小华是个很有对数字很敏感的小朋友,他觉得数字的不同排列方式有特殊美感。 某天,小华突发奇想,如果数字多行排列,第一行1个数,第二行2个,第三行3个, 即第n行有n个数字,并且奇…

代码记录2

1 select year(replace(replace(replace(2013年10月21日,年,-),月,-),日,)) 2-1 create database question2 on primary( Namequestion2_data.mdf, SIZE6MB, MAXSIZE12MB, fileNAMED:\A1\question2_data.mdf, FILEGROWTH5% ) log on( NAMEquestion2_log.1df, SIZE6MB, MAXSIZE1…