canvas中的那些坑

superil superil     2022-10-16     757

关键词:

年前做了一个合成图片的小工具,需求大体为:用户输入要在一整张大图片显示的文字、图片及它们所在大图的坐标,合成一张大图用来干啥干啥。

做法当然是用canvas做的。canvas就不细说了,来说说他的坑吧。

坑之一:输入的文字和坐标都是标准的,但是文字就是不给你在标准展示,坐上偏上。

原因:canvas插入文字的坐标(x,y), 不是左上角相对于画布的坐标,是左下角相对于画布的坐标

(1)x:文字左边相对于画布的坐标
(2)y:文字下面相对于画布的坐标,但是,这个y有个baseline的限制,如果需要严格的上下居中时,需要设置一下它的baseline.ctx.textBaseline
坑之二:canvas转化为base64图片时,画布上如果有不在统一域名的图片会报错
解决方法:
需要设置跨域的图片允许跨域
Image.setAttribute(‘crossOrigin‘, ‘anonymous‘);
crossOrigin="anonymous"在img标签里设
但是也存在设置了属性后还报错的情况,这时候你要看看是不是同时请求了同一张图片,这种情况下,第一次请求图片他会带请求头,第二次请求这张图片时,他会直接取缓存中的数据,然后就挂了。
有篇文章介绍的特别好,但是我找不到了,就记着,这玩意还有一种情况跟cdn有关,也是会拿缓存,解决方法是请求的src地址上加时间戳

ionic打包中的那些坑

经过不断的尝试,终于打包好了(Windows)首先是开发环境的搭建,参考的http://www.jianshu.com/p/b9757a5bcb07,就不用多说了。环境搭建好了,就可以创建一个demo进行测试打开终端,创建一个名为myapp的项目执行ionicstartmyapptabs等待创建完... 查看详情

golang中的那些坑之迭代器中的指针使用(代码片段)

今天在编写代码的时候,遇到了一个莫名其妙的错误,debug了半天,发现这是一个非常典型且易犯的错误.记之示例代码:packagemainimport"fmt"typeaastructx,yinttypebbstructmemberaafuncmain()m:=[]*aapool:=[]bbmember:aax:1,y:1,,,member:aax:2,y:2,,, 查看详情

javascript操作dom的那些坑

...它们进行刷新,动态刷新不影响文档的静态内容。PS:IE中的所有DOM对象都是以COM对象的形式实现的,这意味着IE中的DOM可能会和其他浏览器有一定的差异。Node接口特性/方法类型/返回类型说明nodeNameString节点的 查看详情

工作中的那些坑——语法解析器

工作项目里用到线性回归算法,用于计算账户的分值,表明某账户是否是有风险的账户。其中参数都配好了,代码里直接用逆波兰表达式解析即可。本来事情到这里已经结束,突然来了新的需求:账户算出来的分数较为无序,于... 查看详情

surfaceshader中的那些坑-finalcolor覆盖雾化

前天美术同事让我调一个Tree的Shader,起因是因为他在另外一个游戏里看到的树亮部很亮,暗部很暗,反差很大,而一般的shader做不到,而且每棵树也没有对应的高光贴图。于是找到Unity内置的一个Shader,一... 查看详情

unity-touch的那些坑

...记录手指的状态信息,当有一个手指退出屏幕,那么数组中的位置产生一个空缺,当有新手指加入时候,新手指将替代刚刚退出的手指在数组中的位置。记得在手指退出 查看详情

使用jdk的同步容器时,应该避免那些坑?

摘要:在使用JDK中的同步容器时,应该尽量避免哪些坑本文分享自华为云社区《​​【高并发】亿级流量高并发秒杀系统商品“超卖”了,只因使用的JDK同步容器中存在这两个巨大的坑!!(踩坑实录)​​》,作者:冰河。同... 查看详情

项目中的那些事---踩过的数据库坑

今天来说一下我在做项目时踩到的postgresql数据库的坑.......数据库:postgresql工具:Navicat诱因:设置数据库表的主键为自动增长之前做项目时数据库是别人设计的,我只操作数据库表。今天在navicat工具中创建数据表时想让主键(id)... 查看详情

安装vmwaretools的步骤和那些坑

...ols在ubuntu中是及其不稳定的,也就是说,当你点击菜单栏中的installvmwaretools后,在CD中可能看不到相应的.tar.gz的包,当然也是有可能看到的。下面的解决办法也就是在能看到.tar.gz的包的情况下的:可以先把.tar.gz的包拷贝到Desktop... 查看详情

html2canvas的踩坑之路

html2canvas的踩坑之路前言早有耳闻这个html2canvas比较坑,但无奈于产品需求的压迫,必须实现html转图片的功能,自此走上了填坑之路,好在最后的效果还算令人满意,这才没有误了产品上线周期.html2canvas介绍html2canvas的详细介绍可以点击... 查看详情

ios开发--aes加密中的那些坑

参考技术A在开发中经常会遇到数据的加密,常见的有base64、DES、AES、RSA等,由于AES的用法相对简单一些,在公司的项目中,我们使用的是AES加密。但是遇到一个大坑就是后台使用了AES的128/CBC/NoPadding加密模式,很可悲的是iOS中只... 查看详情

巨坑系列:javabean转map的那些坑(代码片段)

一、背景有些业务场景下需要将JavaBean转成Map再使用。本以为很简单场景,但是坑很多。二、那些坑2.0测试对象importlombok.Data;importjava.util.Date;@DatapublicclassMockObjectextendsMockParentprivateIntegeraInteger;privateLongaLong;privateDo 查看详情

使用jdk的同步容器时,应该避免那些坑?(代码片段)

摘要:在使用JDK中的同步容器时,应该尽量避免哪些坑本文分享自华为云社区《【高并发】亿级流量高并发秒杀系统商品“超卖”了,只因使用的JDK同步容器中存在这两个巨大的坑!!(踩坑实录)》,... 查看详情

游戏人生,我的lua之旅:那些坑爹的ccbreaderload

...能够自行去百度。我们来讨论下怎样用这个ccbi,以及ccbi中的坑。先来看一段tes 查看详情

少走冤枉路!优云带你走过snmp的那些坑

...云开源了一套友好的SNMPAPI,并通过本文简单介绍这套API中的一些特点,希望帮助各位运维同仁提前规避一些问题。650)this.width=650;"src="http:/ 查看详情

canvas踩坑记录(代码片段)

一、绘制一个带有多张图片和文字的canvas。要求将一张矩形的图片,放置进去显示为圆角矩形的图片  解决方案,先把图片处理成圆角矩形的样子,再放进去就可以了  绘制圆角矩形图片的解决方案<imgsrc="http://pics.sc.chinaz... 查看详情

巨坑系列:javabean转map的那些坑(代码片段)

...成Map再使用。本以为很简单场景,但是坑很多。二、那些坑2.0测试对象import lombok.Data;import java.util.Date;@Datapublic class MockObject extends  MockParent    private Integ 查看详情

巨坑系列:javabean转map的那些坑(代码片段)

...成Map再使用。本以为很简单场景,但是坑很多。二、那些坑2.0测试对象import lombok.Data;import java.util.Date;@Datapublic class MockObject extends  MockParent    private Integ 查看详情