• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[昨夜星辰] 【源码】获取图片尺寸的几种方法 [复制链接]

1#
函数名:
GetImageSize_PictureBox
参数定义:
FileName
字符串型:图片完整路径

返回值:

整数型数组:下标0为图片宽,下标1为图片高。

调用例子:

TracePrint Join(GetImageSize_PictureBox("C:\1.bmp"))

TracePrint Join(GetImageSize_PictureBox("C:\1.jpg"))

TracePrint Join(GetImageSize_PictureBox("C:\1.gif"))

'需要提前在QUI中创建一个名为“PictureBox1”的图像控件,仅支持bmp、jpg、gif格式。

源码:

  1. Function GetImageSize_PictureBox(FileName)
  2. GetImageSize_PictureBox = Array(0, 0)
  3. Form1.PictureBox1.Picture = FileName
  4. GetImageSize_PictureBox = Array(Form1.PictureBox1.Width, Form1.PictureBox1.Height)
  5. End Function
复制代码


函数名:

GetImageSize_LoadFile
参数定义:
FileName
字符串型:图片完整路径

返回值:

整数型数组:下标0为图片宽,下标1为图片高。

调用例子:

TracePrint Join(GetImageSize_LoadFile("C:\1.bmp"))

TracePrint Join(GetImageSize_LoadFile("C:\1.png"))

TracePrint Join(GetImageSize_LoadFile("C:\1.jpg"))

TracePrint Join(GetImageSize_LoadFile("C:\1.gif"))

'支持bmp、png、jpg、gif等格式。

源码:

  1. Function GetImageSize_LoadFile(FileName)
  2. GetImageSize_LoadFile = Array(0, 0)
  3. Dim Img
  4. Set Img = CreateObject("WIA.ImageFile")
  5. Img.LoadFile FileName
  6. GetImageSize_LoadFile = Array(Img.Width, Img.Height)
  7. Set Img = Nothing
  8. End Function
复制代码


函数名:
GetImageSize_LoadPicture
参数定义:
FileName
字符串型:图片完整路径

返回值:

整数型数组:下标0为图片宽,下标1为图片高。

调用例子:

TracePrint Join(GetImageSize_LoadPicture("C:\1.bmp"))

TracePrint Join(GetImageSize_LoadPicture("C:\1.jpg"))

TracePrint Join(GetImageSize_LoadPicture("C:\1.gif"))

'仅支持bmp、jpg、gif格式。

源码:

  1. Function GetImageSize_LoadPicture(FileName)
  2. GetImageSize_LoadPicture = Array(0, 0)
  3. Dim key
  4. key = "HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics\AppliedDPI"
  5. Dim WshShell, dpi
  6. Set WshShell = CreateObject("Wscript.Shell")
  7. dpi = WshShell.RegRead(key)
  8. Set WshShell = Nothing
  9. Dim p
  10. Set p = LoadPicture(FileName)
  11. GetImageSize_LoadPicture = Array(Round(p.Width * dpi / 2540), Round(p.Height * dpi / 2540))
  12. Set p = Nothing
  13. End Function
复制代码


函数名:
GetImageSize_Binary
参数定义:
FileName
字符串型:图片完整路径

返回值:

整数型数组:下标0为图片宽,下标1为图片高。

调用例子:

TracePrint Join(GetImageSize_Binary("C:\1.bmp"))

TracePrint Join(GetImageSize_Binary("C:\1.png"))

TracePrint Join(GetImageSize_Binary("C:\1.jpg"))

TracePrint Join(GetImageSize_Binary("C:\1.gif"))

'仅支持bmp、png、jpg、gif格式。

源码:

  1. TracePrint Join(GetImageSize_Binary("C:\1.bmp"))
  2. TracePrint Join(GetImageSize_Binary("C:\1.png"))
  3. TracePrint Join(GetImageSize_Binary("C:\1.jpg"))
  4. TracePrint Join(GetImageSize_Binary("C:\1.gif"))
  5. Function GetImageSize_Binary(FileName)
  6. GetImageSize_Binary = Array(0, 0)
  7. Dim Adodb, i, UBound_Buf, Bin
  8. Set Adodb = CreateObject("Adodb.Stream")
  9. Adodb.mode = 3
  10. Adodb.type = 1
  11. Adodb.Open
  12. Adodb.LoadFromFile FileName
  13. UBound_Buf = Adodb.Size - 1
  14. If UBound_Buf > 166 Then
  15. UBound_Buf = 166
  16. End If
  17. Redim Buf(UBound_Buf)
  18. For i = 0 To UBound_Buf
  19. Buf(i) = AscB(Adodb.Read(1))
  20. Next
  21. Adodb.Close
  22. Set Adodb = Nothing
  23. Bin = buf
  24. If UBound(Bin) = - 1 Then
  25. GetImageSize_Binary = Array(0, 0)
  26. Exit Function
  27. End If
  28. Dim info, w, h
  29. w = ""
  30. h = ""
  31. info = ""
  32. For i = 0 To 1
  33. info = info & Hex(Bin(i))
  34. Next
  35. If info = "FFD8" Then //JPG
  36. For i = 165 To 166
  37. w = w & Hex(Bin(i))
  38. Next
  39. For i = 163 To 164
  40. h = h & Hex(Bin(i))
  41. Next
  42. GetImageSize_Binary = Array(Abs(Eval("&H" & w)), Abs(Eval("&H" & h)))
  43. Exit Function
  44. End If
  45. info = ""
  46. For i = 0 To 1
  47. info = info & Hex(Bin(i))
  48. Next
  49. If info = "424D" Then //BMP
  50. For i = 19 To 18 Step - 1
  51. w = w & Hex(Bin(i))
  52. Next
  53. For i = 23 To 22 Step - 1
  54. h = h & Hex(Bin(i))
  55. Next
  56. GetImageSize_Binary = Array(Abs(Eval("&H" & w)), Abs(Eval("&H" & h)))
  57. Exit Function
  58. End If
  59. info = ""
  60. For i = 0 To 3
  61. info = info & Hex(Bin(i))
  62. Next
  63. If info = "89504E47" Then //PNG
  64. For i = 18 To 19
  65. w = w & Hex(Bin(i))
  66. Next
  67. For i = 22 To 23
  68. h = h & Hex(Bin(i))
  69. Next
  70. GetImageSize_Binary = Array(Abs(Eval("&H" & w)), Abs(Eval("&H" & h)))
  71. Exit Function
  72. End If
  73. info = ""
  74. For i = 0 To 2
  75. info = info & Hex(Bin(i))
  76. Next
  77. If info = "474946" Then //GIF
  78. For i = 7 To 6 step -1
  79. w = w & Hex(Bin(i))
  80. Next
  81. For i = 9 To 8 step -1
  82. h = h & Hex(Bin(i))
  83. Next
  84. GetImageSize_Binary = Array(Abs(Eval("&H" & w)), Abs(Eval("&H" & h)))
  85. Exit Function
  86. End If
  87. End Function
复制代码


最后编辑昨夜星辰 最后编辑于 2022-03-29 12:05:19
近期制作:
传奇私服各种反外挂插件版本挂机软件,可教可售
原神加速、连发辅助工具
天下3自动钓大鱼辅助工具

承接脚本定制,点击下方联系
QQ:250039815

交流群:101296478

2#

谢谢

3#

感谢分享

4#

感谢分享,支持

5#

学习学习

6#

学习一下。。。。。。。。。。。。。。。。。。。

7#

继续学习

8#

可以点赞

可以的正好需要,谢谢

9#

学习一下

10#

学习一下。。。。。。

11#

感谢分享

12#

看看

13#

感谢感谢

14#

阿斯顿发斯蒂芬

15#

学习一下

16#

qweqwe

17#

感谢分享~~~~

18#

我来看下有没有需要的

19#

666666666666666666

20#

内容需您回复才可浏览

发新话题 回复该主题