微信小程序中canvas实现水平、垂直居中方法

微信小程序中canvas实现水平、垂直居中方法由于我最近做一个刮刮卡,需要将文字在canvas中水平、垂直居中wxml<canvastype='2d'id="myCanvas"width="300"height="150">使用canvas2d构建画布蓝色线为水平中线红色线为垂直中线文本设置方法fillText方法为canvas设置文本方法,使用如下所示ctx.fillText('文本内容',x,y)x为横轴坐标y为纵轴坐标上例将文本内容设置在canvas画布的坐标位置上,跳脱web的开发思维,我们可以认为X点相对于文本有左,中,右三种布局,Y点相对于文本有上、中、下的布局,这样就很好理解文本在canvas上是如何绘制了水平居中找到X轴的中点位置,如上图,在150px这个点上注意X点相对于文本的位置垂直居中找到Y轴的中点位置,如上上张图,在75px这个点上注意Y点相对于文本的位置ctx.fillStyle='#aaa'ctx.font='bold30px"GillSansExtrabold"'ctx.textBaseline='middle'ctx.fillText('文本...

【laravel5.4+vue.js】laravel 循环三维数组,解决:htmlentities() expects parameter 1 to be string, array given

laravel循环三维数组  +++  vue.js循环三维数组 (数据均是以三维数组形式存在的)<form-itemlabel="权限名称"prop="interest">@foreach($permission3levelas$k=>$v)@foreach($vas$k2=>$v2){{$v2['name']}}+++{{$v2['cate_id']}}@endforeach@endforeach</form-item><form-itemlabel="权限名称"prop="interest">@foreach($permission3levelas$k=>$v)@if($k==1)<divv-for="(item2,index2)inlevel"><checkbox-groupv-model="ruleForm.interest"><Checkboxv-for="(item,index)initem2":index="index":label="i...

laravel5.4】vue分页删除

1、a标签执行ajax删除,后台删除成功后,执行vue分页对象删除对应数据 VUE.js ...

【tp5】tp5实现空模块、空控制器、空操作的页面404跳转

写在最开始:本教程适用于tp5路由的【强制模式+半pathinfo模式+pathinfo模式】,通用。比网上的【通过路由去控制空模块更强力、更全面】。PS:路由控制空模块缺点:仅仅在【强制模式下才生效,pathinfo模式下有错误】 1、这里只讲tp5(5.0.18)的空模块跳转,空控制器和空操作官网有。来个正确的空模块处理吧:首先找到thinkApp.php,备份,然后修改:找到【thrownewHttpException(404,'modulenotexists:'.$module);】,在它前面添加【header('Location:/404.html');die;//在此进行跳转】即可,实现控模块跳转404功能。ps:其他已存在页面不影响 2、效果: ...

【TP5.0】tp5.0实现连接多个数据库,实现类似3.2M(‘table’,'prefix_','db_config2')的CURD操作

1、db_connect的name链式操作,类似于3.2的M('table','prefix_','db_config2')/***db_connect的name链式操作,类似于3.2的M('table','prefix_','db_config2')*tags*@param*@returnreturn_type*@authorxzz2018年8月10日*/publicfunctiondb_connect_name_demo(){$id=$this->request->param('id',0,'intval');//节令项目id$post=Db::connect('db_config2')->name('card_ticket')->where('id','=',(int)$id)->find();//find返回一维数组//var_dump($post);die;if(!empty($post)){$post['code']=1;exit(json_encode($post));}else{$post['code']=0;$this->error...

【TP3.2】TP3.2下实现ajax分页(原创+亲测可用)

一,写在最开始:ajax分页的原理,是利用了js的ajax执行请求,获取分页list和分页page【代码块】,去替换页面显示数据的【代码块】   技术:js的ajax+TP3.2的fetch("Index/data")技术,仅此而已。1、在LibraryThink目录下直接加入以下代码:Ajaxpage.class.php<?php/***ajax分页类,有namespace,使用方法:*控制器直接$ajaxpage=newThinkAjaxpage($p1,$p2,$p3);*@paramunknowtype*@returnreturn_type*@authorxzz2018年4月27日上午8:49:19*/namespaceThink;classAjaxpage{//分页栏每页显示的页数public$rollPage=5;//页数跳转时要带的参数public$parameter;//默认列表每页显示行数public$listRows=20;//起始行数public$firstRow;//分页总页面数protected$totalPages;//总...

【jsPDF】jsPDF插件实现将html页面转换成PDF,并下载,支持分页

1、目的:在前段是jQuery库或者VUE库或者两者混合库,将html页面和数据转换成PDF格式并下载,支持分页1、项目背景:对客户报修记录进行分类统计,并生成各种饼图、柱状图、线性图。并要求导出word,并打印。html里面内容是通过js刷新出来的,是动态的数据。2、项目难点:1)html导出到word,不太可能,页面比较复杂,内容比较多,而且word不支持。2)html页面存在多个echart图表,根本无法导出。3、折中方案采用jspdf插件,将html页面导出成pdf,在打印pdf。效果不是特别理想,但是还过的去。4、具体操作1)下载jspdf插件,官网有。2)html页面引用两个js文件jspdf.debug.js和html2canvas.js(利用该插件将html页面转化成图片,在插入到pdf中)3)编写一个js方法即可实现转化pdf。并可以指定导出区域。 2、引入类库包:<!--.pdf文件下载download--><scriptsrc="https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2c...

python实现屏幕截图

fromseleniumimportwebdriverimporttimedefcapture(url,save_fn="capture.png"):browser=webdriver.Firefox()#Getlocalsessionoffirefoxbrowser.set_window_size(1200,900)browser.get(url)#Loadpagebrowser.execute_script("""(function(){vary=0;varstep=100;window.scroll(0,0);functionf(){if(y<document.body.scrollHeight){y+=step;window.scroll(0,y);setTimeout(f,50);}else{window.scroll(0,0);document.title+="scroll-done";}}setTimeout(f,1000);})();""")foriinxrange(30):if"scroll-done"inbrowser.title:breaktime.slee...

画饼图和折线图和柱状图的实现

每一个数据首先是列表,然后进行赋值:#-*-coding:utf-8-*-importnumpyasnpimportmatplotlib.pyplotaspltimportmatplotlibasmpldefdraw_pie(labels,quants):#makeasquarefigureplt.figure(figsize=(6,6))#表示绘画一个图,图的大小是6*6##ForChina,makethepieceexplodeabitexpl=[0,0.1,0,0,0,0,0,0,0,0]#Colorsused.Recycleifnotenough.colors=["blue","red","coral","green","yellow","orange"]#PiePlot#autopct:formatof"percent"string;plt.pie(quants,explode=expl,colors=colors,labels=labels,autopct='%1.1f%%',pctdistance=0.8,shadow=True)plt.title('Top10GDPCo...

python实现post请求

今天无论如何都要留下一些什么东西。。。可以说今天学到一个新的一个东西,也需要分享出来,给更多的人去使用。今天爬取的数据里面是客户端向服务器端发送加密过的token和一些页码之类的一个数据。(我主要是想通过翻页获取每一页的数据,该网页是通过post去获取的请求,所以需要带一堆的嵾数才会出来数据)。pyload={"token":"2280d841c47074107bb903169cd78d4d0a1345970ec6380d0909efc7e77a25cb","sign":"700eae16811bd1844e21c31c3ed0f5b0","page":"3","order":"0","limit":"12","map":""}headers={'Host':'usedcar.auto.sina.com.cn','Connection':'keep-alive','Content-Length':'186','Accept':'application/json,text/javascript,*/*;q=0.01','Origin':'http://usedcar.auto.sina....

贝叶斯实现分类

#-*-coding:utf-8-*-importsysimportosimportnumpyasnpimportpicklefromsklearnimportmetrics#导入数据集defloadDataSet():postingList=[['my','dog','has','flea','problems','help','please'],['maybe','not','take','him','to','dog','park','stupid'],['my','dalmation','is','so','cute','I','love','him','my'],['stop','posting','stupid','worthless','garbage'],['mr','licks','ate','my','steak','how','to','stop','him'],['quit','buying','worthless','dog','food','stupid']]classVec=[0,1,0,1,0,1]#1isabusive,0not,分类returnpos...
IT猿 IT猿·2020-03-25

python实现进制之间的转换

十进制转36进制:#36位映射模板loop='0123456789abcdefghijklmnopqrstuvwxyz'#测试用例输入n=1409980009869a=[]whilen!=0:a.append(loop[i%36])n=n/36a.reverse()out=''.join(a)#out:'hzqhoyh9'36进制转10进制:out=int('hzqhoyh9',36)python常用的进制转换:1、数字字符串转换为整数int(strNum,base)//base是字符串所表示的数的进制//返回的是10进制的整数2、整数转换为进制数字字符串bin(intNum)//返回10进制的intNum的2进制表示字符串oct(intNum)// 返回10进制的intNum的8进制表示字符串hex(intNum)// 返回10进制的intNum的16进制表示字符串 3、字符与数字的转换chr(intNum)//返回intNum所代表的字符ord(character)//返回character所对应的字符在unicode编码的顺序 示例:hex...

使用协程(gevent)实现请求

协程,又称微线程。英文名Coroutine。  协程最大的优势就是协程极高的执行效率。因为子程序切换不是线程切换,而是由程序自身控制,因此,没有线程切换的开销,和多线程比,线程数量越多,协程的性能优势就越明显。  第二大优势就是不需要多线程的锁机制,因为只有一个线程,也不存在同时写变量冲突,在协程中控制共享资源不加锁,只需要判断状态就好了,所以执行效率比多线程高很多。  因为协程是一个线程执行,那怎么利用多核CPU呢?最简单的方法是多进程+协程,既充分利用多核,又充分发挥协程的高效率,可获得极高的性能。后续会就这一块单独开写一篇协程+多进程的测试文章。  Python对协程的支持还非常有限,用在generator中的yield可以一定程度上实现协程。虽然支持不完全,但已经可以发挥相当大的威力了。Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。  gevent是第三方库,通过greenlet实现协程,其基本思想是:  当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO...

itchat+pillow实现微信好友头像爬取和拼接

源码下载链接:https://pan.baidu.com/s/1cPZhwy密码:2t2o###效果图 使用方法:下载项目到本地,打开项目主目录,打开命令行,输入:pipinstall-rrequirements.txt 使用pip命令时出了一个错:Youareusingpipversion7.0.3,howeverversion9.0.1isavailable.解决方法:使用easy_install指令安装:首先进入到easy_install的目录例如D:PythonScripts然后通过指令easy_install.exepip==9.0.1安装成功。之后又提示了一个错误:error:Unabletofindvcvarsall.bat解决方法:我的python版本是3.6,网上多数解决方法是降级到2.X。不过我找到一个包,链接:https://pan.baidu.com/s/1pM6mdYj密码:s3mk下载之后按照正常方式安装,装完就解决了。等待安装完成,输入:pythonwxImage.py 出现如下二维码:用手机微信右上角的扫一扫,确认登陆即可。...
首页上一页...543544545546547下一页尾页