示例1,以像素为单位:
Loop 2 ; 解决管理员权限运行脚本时,文件无法拖拽的问题 DllCall("ChangeWindowMessageFilter", "UInt", "0x" (_:=!_?49:233), "Uint", 1) Gui, Add, Edit, xm ym ReadOnly r5 w300 vMyEdit,将文件拖入此窗口获取图片信息 Gui, Show, AutoSize return GuiDropFiles: iSize := getImageSize(A_GuiEvent) GuiControl,,MyEdit, % "文件:" A_GuiEvent "`n宽度:" iSize.width " 像素`n高度:" iSize.height " 像素" Return ; https://github.com/Masonjar13/AHK-Library getImageSize(imagePath){ splitPath, imagePath, fN, fD oS:=comObjCreate("Shell.Application") oF:=oS.namespace(fD? fD: A_WorkingDir) oFn:=oF.parseName(fD? fN : imagePath) size:=strSplit(oFn.extendedProperty("Dimensions"),"x"," ?" chr(8234) chr(8236)) return {width: size[1], height: size[2]} }
示例2,以厘米为单位:
Loop 2 ; 解决管理员权限运行脚本时,文件无法拖拽的问题 DllCall("ChangeWindowMessageFilter", "UInt", "0x" (_:=!_?49:233), "Uint", 1) Gui, Add, Edit, xm ym ReadOnly r5 w300 vMyEdit,将文件拖入此窗口获取图片信息 Gui, Show, AutoSize return GuiDropFiles: strPic := A_GuiEvent objImage := ComObjCreate("WIA.ImageFile") objImage.LoadFile(strPic) winw := objImage.Width/objImage.HorizontalResolution*2.54 winh := objImage.Height/objImage.VerticalResolution*2.54 SetFormat, float, 0.1 Transform, winw, Round, winw,1 Transform, winh, Round, winh,1 winp := winw*winh/10000 GuiControl,,MyEdit,文件:%A_GuiEvent%`n宽度:%winw%厘米`n高度:%winh%厘米`n平方:%winp%平方 Gui, Show, AutoSize return GuiClose: ExitApp /* objImage.Width ;宽度 objImage.Height ;高度 objImage.PixelDepth ;位深度 objImage.VerticalResolution ;垂直分辨率 objImage.HorizontalResolution ;水平分辨率 */
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)