找回密码
 加入
搜索
查看: 2434|回复: 5

[AU3基础] 图片截图(已解决)

[复制链接]
发表于 2019-9-6 20:29:00 | 显示全部楼层 |阅读模式
本帖最后由 xymc 于 2019-9-8 22:29 编辑

Local $pic = @HomeDrive&"\Source.bmp"
C盘里面有个图片,我想截取图片里面某个区域(300, 230, 350, 260)的图片.

查找了一下帮助,只找到_ScreenCapture_Capture这个函数,捕捉屏幕的,请教下有没有截取图片某个区域的方法?
谢谢版主,答案在4楼



发表于 2019-9-6 20:30:54 | 显示全部楼层
_GDIPlus_GraphicsDrawImageRectRect
 楼主| 发表于 2019-9-6 20:59:01 | 显示全部楼层
afan 发表于 2019-9-6 20:30
_GDIPlus_GraphicsDrawImageRectRect

#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#include <ScreenCapture.au3>

Local $pic = @HomeDrive&"\Source.bmp"

_Main()

Func _Main()
    Local $hGUI2, $hImage, $hGraphic2
    ; 创建 GUI
    $hGUI2 = GUICreate("Zoomed", 400, 300, 0, 400)
    GUISetState()
    ; 初始化 GDI+ 库并加载图像
    _GDIPlus_Startup()
    $hImage = _GDIPlus_ImageLoadFromFile($pic)

    $hGraphic2 = _GDIPlus_GraphicsCreateFromHWND($hGUI2)
        _GDIPlus_GraphicsDrawImageRectRect($hGraphic2, $hImage, 300, 230, 200, 200, 300, 230, 200, 200)

    ; 释放资源
    _GDIPlus_GraphicsDispose($hGraphic2)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

    ; 循环直到用户退出
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

EndFunc   ;==>_Main

请教下怎么保存截取下来的这个图片?保存为BMP格式
发表于 2019-9-6 23:23:15 | 显示全部楼层
方法有很多,这只是其中一种
#include <GDIPlus.au3>

Local $pic = @HomeDrive & "\Source.bmp"
_ImageCut($pic, 300, 230, 50, 30, $pic & '_1.bmp')

Func _ImageCut($ImgFile, $ix, $iy, $iw, $ih, $ImgFileNew)
        _GDIPlus_Startup()
        Local $hImage = _GDIPlus_ImageLoadFromFile($ImgFile)
        Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hImage)
        Local $hBMPNew = _GDIPlus_BitmapCreateFromGraphics($iw, $ih, $hGraphics)
        Local $hGraphicNew = _GDIPlus_ImageGetGraphicsContext($hBMPNew)
        _GDIPlus_GraphicsDrawImageRectRect($hGraphicNew, $hImage, $ix, $iy, $iw, $ih, 0, 0, $iw, $ih)
        _GDIPlus_GraphicsDispose($hGraphics)
        _GDIPlus_GraphicsDispose($hGraphicNew)
        _GDIPlus_ImageSaveToFile($hBMPNew, $ImgFileNew)
        _GDIPlus_ImageDispose($hImage)
        _GDIPlus_ImageDispose($hBMPNew)
        _GDIPlus_Shutdown()
EndFunc   ;==>_ImageCut
发表于 2019-9-8 19:21:55 | 显示全部楼层
xymc 发表于 2019-9-6 20:59
#include
#include
#include

学习学习。收藏一下。
发表于 2019-9-15 01:11:27 | 显示全部楼层
afan大神真是厉害
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 07:26 , Processed in 0.074416 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表