1.直播软件源码使用canvas实现一个小小的源码源代截功能
2.「安卓按键精灵」几种字符串提取的方法(源码)
直播软件源码使用canvas实现一个小小的截功能
直播软件源码使用canvas实现截图功能,需用hook管理状态,码截包含截图、源码源代取消截图及截取操作。码截-22源码
构建两个canvas,源码源代canvas A用于展示截图动效,码截如未被截取区域背景置灰,源码源代截取区域显示边框;canvas B用于展示完整,码截便于截取动作及生成截图数据。源码源代
在canvas A上监听mousedown、码截mousemove和mouseup事件,源码源代仓位管理 源码计算截图区域。码截通过这三个事件捕捉用户动作,源码源代生成动效及截取。码截
截图过程结束,源码源代立即生成截取数据。phpyun vip版 源码
关键难点在于计算截图区域、实现动效以及生成截图。
计算截图区域,通过mousedown事件记录起点坐标,mousemove实时监听坐标,布尔运算源码mouseup记录终点坐标,计算出截取区域。
实现截图动效,包括置灰未被选取部分和添加截取部分边框。使用canvas的手机怎么查看源码globalCompositeOperation属性,通过mousedown置灰,mouseup绘制截取效果。
生成和获得截取区域,在mouseup事件生成,通过canvas自带的toDataURL方法将截图转化为base格式。截图开始时,将原绘制到canvas B上,便于截取并生成。
完成直播软件源码中使用canvas实现的截图功能代码编写,后续文章将提供更多信息。关注以获取更多技术细节及更新。
「安卓按键精灵」几种字符串提取的方法(源码)
截取法提取两个字符串之间的内容
TracePrint GetStrAB("如果想要写成一行代码,那么就可以用冒号连接","想要","代码")
Function GetStrAB(str,StrA,StrB)
If UTF8.InStr(1, str, StrA)>0 and utf8.instr(1,str,StrB) > 0 Then
Dim m=utf8.instr(1,Str,StrA)
Dim n=utf8.instr(m,Str,StrB)
GetStrAB=utf8.mid(str,m+utf8.len(StrA),n-m-utf8.len(StrA))
End If
End Function
分割法提取字符串
TracePrint SplitStrAB("如果想要写成一行代码,那么就可以用冒号连接","想要","代码")
Function SplitStrAB(str, StrA, StrB)
If UTF8.InStr(1, str, StrA) > 0 and UTF8.InStr(1, str, StrB) > 0 Then
Dim arr_A=split(str,StrA)
Dim arr_B=split(arr_A(1),StrB)
SplitStrAB=arr_B(0)
end if
End Function
取多组两个字符串之间的内容
Dim arr=GetStrArr("如果(公众号3分钟学堂)写成一行(代码),那么就(可以)用冒号连接","(",")")
For Each k In arr
TracePrint k
Next
Function GetStrArr(str, StrA, StrB)
If UTF8.InStr(1, str, StrA) > 0 and UTF8.InStr(1, str, StrB) > 0 Then
Dim str_arr=array()
Dim n=0
Dim arr_A=split(str,StrA)
Dim arr_B
For i = 1 To UBOUND(arr_A)
If InStr(1,arr_A(i),StrB) > 0 Then
arr_B = Split(arr_A(i), StrB)
str_arr(n) = arr_B(0)
n=n+1
End If
Next
GetStrArr=str_arr
end if
End Function
提取数字
TracePrint GetNum("如果_ba@d1b都是a2aaf%b连接")
Function GetNum(str)
Dim Num
For i = 1 To UTF8.Len(str)
If IsNumeric(utf8.StrGetAt(str,i)) Then
Num=Num&utf8.StrGetAt(str,i)
End If
Next
GetNum=Num
End Function
提取字母
TracePrint GetZm("如果_ba@d1b都是a2aaf%b连接")
Function GetZm(str)
Dim zm
For i = 1 To UTF8.Len(str)
If < CInt(Asc(utf8.StrGetAt(str, i))) < or < CInt(Asc(utf8.StrGetAt(str, i))) < Then
zm=zm&utf8.StrGetAt(str,i)
End If
Next
GetZm=zm
End Function
提取汉字
TracePrint GetCN("如果_ba@d1b都是a2aaf%b连接")
Function GetCN(str)
Dim CN
For i = 1 To UTF8.Len(str)
If Len(utf8.StrGetAt(str, i)) = 3 Then
CN=CN&utf8.StrGetAt(str, i)
End If
Next
GetCN=CN
End Function
正则提取数字
import"shanhai.lua"
Dim str="如果_ba@d1b都是a2aaf%b连接"
dim arr= shanhai.RegexFind(str,"%d+")
TracePrint join(arr,"")
正则提取字母
import"shanhai.lua"
Dim str="如果_ba@d1D都是a2aaf%b连接"
dim arr= shanhai.RegexFind(str,"%a+")
TracePrint join(arr,"")
正则提取汉字
import"shanhai.lua"
Dim str="如果_ba@d1D都是a2aaf%b连接"
dim arr= shanhai.RegexFind(str,"[\-\]+")
TracePrint join(arr,"")
本期文章是源码分享的形式,感兴趣的朋友可以复制源码在按键中运行一下,自己照着去写写就可以学会。