简单、高效、实用的图片操作库 —— ImagePut 轻松实现截图、转换、缩放、裁剪等各种功能

如何使用?

ImagePut 是 iseahound 写的一个图片操作库,大部分常见图片操作都可以用极为简单的方式实现。

下载 https://github.com/iseahound/ImagePut 里面的 ImagePut (for v1).ahk 重命名为 ImagePut.ahk 。

在你的代码中像这样引用它。

#Include ImagePut.ahk  ; 引用库

能做什么?

ImagePutFile(Image)       ; 将图片存为文件
ImagePutWindow(Image)     ; 将图片显示出来
ImagePutBase64(Image)     ; 将图片转换为 base64 编码后的字符
ImagePutClipboard(Image)  ; 将图片存入剪贴板
ImagePutWallpaper(Image)  ; 将图片设为壁纸
ImagePutDesktop(Image)    ; 将图片放在壁纸前、图标后的位置
ImagePutCursor(Image)     ; 将图片设为鼠标样式
ImageEqual(Images*)       ; 比较多张图片是否相同
ImageShow(Image)          ; 将图片显示出来(无标题栏)

参数 Image 非常神奇,可以是本地图片、 PDF 文档、坐标、 URL 、base64 字符串等各种形式的图片。

以下使用 ImagePutWindow() 进行演示,方便直接观察结果。


简单示例

显示本地图片

ImagePutWindow("1.png")  ; 显示本地图片

显示网上图片(这里用的是百度的 logo )

ImagePutWindow("https://www.baidu.com/img/flexible/logo/pc/result.png")  ; 显示网上图片(这里用的是百度的 logo )

显示 pdf 文档

ImagePutWindow("1.pdf")  ; 显示 pdf 文档

显示 pdf 文档第2页

ImagePutWindow({image:"1.pdf", index:2})  ; 显示 pdf 文档第2页

显示 pdf 文档最后1页

ImagePutWindow({image:"1.pdf", index:-1})  ; 显示 pdf 文档最后1页

根据坐标截图并显示

ImagePutWindow([0, 0, 100, 100])  ; 根据坐标 [X, Y, W, H] 截图并显示

根据窗口截图并显示(这里用的是记事本窗口)

ImagePutWindow("ahk_exe notepad.exe")  ; 根据窗口截图并显示(这里用的是记事本窗口)

显示剪贴板内图片

ImagePutWindow(ClipboardAll)  ; 显示剪贴板内图片

显示当前鼠标指针

ImagePutWindow(A_Cursor)  ; 显示当前鼠标指针

显示当前壁纸

ImagePutWindow("wallpaper")  ; 显示当前壁纸

显示所有显示器内容

ImagePutWindow(0)  ; 显示所有显示器内容

显示第1台显示器内容

ImagePutWindow(1)  ; 显示第1台显示器内容

显示第2台显示器内容

ImagePutWindow(2)  ; 显示第2台显示器内容

显示 base64 编码后的图片(这里是一个鼠标指针图案)

ImagePutWindow("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADxSURBVFhH7ZK9CsIwFIVv0bVarZNv4eRT+Iq+hB3r0k1wEUFdi0OLU8GCioPek0S0/i5NApIPCslt4Hw9KRH5GTW7Q17YggW81tSihJ9dGIsSUgBYkrgLAAsSVQFgWOJVABiUeC8ADEl8FjieziYkPguAotjrlvguAPJ8p1PitwBI062UqJ+qQFke1Er9hM9P/dwFEM77chLFYs+BMTXCkTqoCylwC5f33FpiJmrntTqoCz+rhjNeECXJDA7cQhDpbUHc60M4kC2sIbBabdDCQr0xCH85wkUL1J6rqUnCPlogrzMm6g3U0OFwOByOf4PoCtGPXlXT5OFnAAAAAElFTkSuQmCC")  ; 显示 base64 编码后的图片(这里是一个鼠标指针图案)

比较3张图片是否相同

ImageEqual(A_Cursor, "cats.jpg", [0,0,100,100])  ; 比较3张图片是否相同

举一反三

要把 jpg 转为 gif 怎么办呢?

ImagePutFile("x:\1.jpg", "2.gif")

要把 pdf 转为 jpg 怎么办呢?(这里只转换了第1页)

ImagePutFile("x:\1.pdf", "2.jpg")

要把截图存到剪贴板怎么办呢?

ImagePutClipboard([0, 0, 100, 100])

要把百度logo设为壁纸怎么办呢?

ImagePutWallpaper("https://www.baidu.com/img/flexible/logo/pc/result.png")

要把当前鼠标样式存为字符怎么办呢?

当前鼠标样式 := ImagePutBase64(A_Cursor)

缩放与裁剪

缩放

ImagePutWindow({image: "x:\1.jpg", scale: 1.25})           ; 放大到1.25倍。 scale 可以是小数
ImagePutWindow({image: "x:\1.jpg", scale: 0.5})            ; 缩小到0.5倍。 scale 可以是小数
ImagePutWindow({image: "x:\1.jpg", scale: [300, 600]})     ; 将图片缩放为 300x600 (注意:指定完整宽高的缩放将无视图片原始宽高比)
ImagePutWindow({image: "x:\1.jpg", scale: [300, ""]})      ; 将图片宽度缩放为300 高度按原始宽高比自动缩放
ImagePutWindow({image: "x:\1.jpg", scale: ["auto", 600]})  ; 将图片高度缩放为600 宽度按原始宽高比自动缩放

裁剪

ImagePutWindow({image: "x:\1.jpg", crop: [0, 0, -100, 200]})          ; 格式 [X, Y, W, H] 。这里表示:宽度减少100像素 高度保留200像素
ImagePutWindow({image: "x:\1.jpg", crop: [0, "10%", "50%", "-20%"]})  ; 百分比要加引号。这里表示:从顶端10%的位置开始裁剪 并且宽度保留50% 高度减少20%

高级功能

上面只是介绍了 imagePut 的基本使用。

实际上还有很多高级功能没有介绍。

例如:

  • ImagePutBitmap
  • ImagePutBuffer
  • ImagePutDC
  • ImagePutHBitmap
  • ImagePutHex
  • ImagePutHIcon
  • ImagePutRandomAccessStream
  • ImagePutStream

由于高级功能大部分读者是用不到的,写进来会增加初学者的理解难度,所以关于这部分内容,请移步原始文档自行了解。

https://github.com/iseahound/ImagePut/wiki

给TA捐赠
共{{data.count}}人
人已捐赠
工具社区推荐近期更新

划词翻译(DeepL Sogou Baidu Youdao,引用大佬接口)

2021-10-8 9:57:56

其他

社区更新至3.2.4

2021-10-14 16:54:19

16 条回复 A文章作者 M管理员
  1. ainiau

    👍

  2. 。13530

    你好 我这面运行库时出现问题了 ,运行时调用语句出现问题#Include ImagePut.ahk ; 引用库 ,提示报错。
    但是我直接去运行库时提示需要安装autohotkey2.0才能运行,但是我去安装了2.0还是不能运行

  3. sanmaodo

    请问,如何获取图片的尺寸?

  4. 1河许人

    进阶版本可以出一个了😁

  5. 1河许人
    1河许人给您打赏了¥2
  6. hei

    👍

  7. dbgba
    dbgba给您打赏了¥2
  8. 月下马

    啊,好帅!!顺便问一下,怎么把代码区和文本区分开的?我发文章的时候,试了一下,不会用

    • 空

      有个代码按钮。

  9. 白云朵朵

    新人学习

  10. 不想说什么

    厉害 学习了

  11. 琪cc

    截图直接存为文件怎么设啊

  12. feng
    feng给您打赏了¥2
  13. 米粒

    👍

  14. 琪cc

    这个很不错,给你个赞~~

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索