马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 剑仙十号 于 2023-9-8 07:15 编辑
read4byte,句柄设置-1,读取本进程地址read=read4byte(handle,#4FC000)
获取bmp图片宽高,纯源码。就是读bytes。
bmp加载到内存,申请内存,复制到内存,看偏移然后读就行了。
bmp,jpg,png…………还有其它格式,都能用得到。
转的:
http://52tc.info/thread-44864-1-1.html
我是大自然的搬运工。
4.0源码,改成7.0代码
var path=系统获取进程路径()
var name="tc.bmp"
var hbmp=dllcall("user32.dll","int","LoadImageA","int",0,"char *",path&name,"int",0,"int",0,"int",0,"int",#10+#2000) //加载到内存.
var size=dllcall("gdi32.dll","int","GetObjectA","int",hbmp,"int",0,"int",null) //创建对象,获取size大小.
var lpbuff=dllcall("Kernel32.dll","int","GlobalAlloc","int",0,"int",size) //申请堆内存,返回值是缓冲区.地址
traceprint(dllcall("gdi32.dll","int","GetObjectA","int",hbmp,"int",size,"int",lpbuff))//复制到内存缓冲区.地址 dllcall("gdi32.dll","int","DeleteObject","int",hbmp) //删除对象
var width=read4byte(-1,lpbuff+4)
var height=read4byte(-1,lpbuff+8)
messagebox(width&" , "&height,"图片宽*高")
dllcall("Kernel32.dll","int","GlobalFree","int",lpbuff) //记得释放缓冲区.
|