所需图片文件打包下载:
代码片段:
#NoEnv SetBatchLines -1 #SingleInstance Force #Include <Gdip> ;--------------------------- ; 如初 ; 2021/4/21 ; ; 每日健康打卡需要提供>4500步的微信步数截图 ; (为了没时间出去溜达的时候也能一样地打卡) ;-------------------------- if !pToken := Gdip_Startup() { MsgBox, 48, gdiplus error!, Gdiplus启动失败!请确保系统装有gdiplus ExitApp } pics := [9,9,9,9] ; 数字是哪些(只能4位数字) ; 数字所在背景图片的x,y像素坐标 ; Sx和Sy可以通过用画图打开背景图片来寻找坐标 Sx := 206 Sy := 1617 MsgBox 0x40, 提示, 背景图片一定要用当天的截图`n(只会覆盖步数区域的图像) BackgroundPic := "背景.jpg" ;背景图片文件名 pBitmapAndG:=生成数字图片(pics) 插入数字图片并保存(BackgroundPic, pBitmapAndG, Sx, Sy) Gdip_Shutdown(pToken) ; 关闭Gdip ExitApp return 插入数字图片并保存(BackgroundPic, pBitmapAndG, Sx, Sy){ ; 读取背景 pBitmapBG := Gdip_CreateBitmapFromFile(BackgroundPic) ; 获取背景的宽度和高度 Width := Gdip_GetImageWidth(pBitmapBG), Height := Gdip_GetImageHeight(pBitmapBG) ; 获取数字图片宽度和高度 Width_ := Gdip_GetImageWidth(pBitmapAndG[1]), Height_ := Gdip_GetImageHeight(pBitmapAndG[1]) pBitmap := Gdip_CreateBitmap(Width, Height) G := Gdip_GraphicsFromImage(pBitmap) Gdip_DrawImage(G, pBitmapBG, 0, 0, Width, Height) ; 绘制背景 Gdip_DrawImage(G, pBitmapAndG[1], Sx, Sy, Width_, Height_) ; 直接把图片全部画上去 ;保存到文件 Gdip_SaveBitmapToFile(pBitmap, "输出文件.png") ;丢弃位图 Gdip_DisposeImage(pBitmap) Gdip_DisposeImage(pBitmapBG) Gdip_DisposeImage(pBitmapAndG) ;丢弃指针 Gdip_DeleteGraphics(G) Gdip_DeleteGraphics(pBitmapAndG[2]) } 生成数字图片(pics){ ;生成数字图片 pics是数字组成的数组 ; 单个数字图片是35*50 ; 创建一个指定像素宽*高的gdi +位图(这是我们必须使用的整个绘图区域) pBitmap := Gdip_CreateBitmap(pics.Length() * 36, 50) ;留出数字间36-35=1的间隙 ; 获取指向位图图形的指针G G := Gdip_GraphicsFromImage(pBitmap) ;填充背景颜色 ; 创建一个白色画笔(将用于用白色填充背景)。笔刷完全不透明(ARGB) pBrush := Gdip_BrushCreateSolid(0xffffffff) ; 用白色画笔填充位图的整个图形(这将是背景色) Gdip_FillRectangle(G, pBrush, 0, 0, pics.Length() * 36, 50) ; 删除为节省内存而创建的笔刷,因为我们不再需要相同的笔刷 Gdip_DeleteBrush(pBrush) ;填充结束 ; 读取要用的数字图片并进行画图 for n,Name in pics { x:=36*(n-1) y=0 pBitmapFile:= Gdip_CreateBitmapFromFile(getPicFilePath(Name)) Gdip_DrawImage(G, pBitmapFile, x, y, 35, 50) ;把数字图片全部画上去 Gdip_DisposeImage(pBitmapFile) ;用完的图片丢弃 } return [pBitmap,G] ;返回画好的位图 } getPicFilePath(Name){ ;返回数字图片路径 return A_ScriptDir "\number\" Name ".png" }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)