找回密码  加入

AUTOIT CN

搜索
查看: 156|回复: 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 | 显示全部楼层
方法有很多,这只是其中一种
  1. #include <GDIPlus.au3>

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

  4. Func _ImageCut($ImgFile, $ix, $iy, $iw, $ih, $ImgFileNew)
  5.         _GDIPlus_Startup()
  6.         Local $hImage = _GDIPlus_ImageLoadFromFile($ImgFile)
  7.         Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hImage)
  8.         Local $hBMPNew = _GDIPlus_BitmapCreateFromGraphics($iw, $ih, $hGraphics)
  9.         Local $hGraphicNew = _GDIPlus_ImageGetGraphicsContext($hBMPNew)
  10.         _GDIPlus_GraphicsDrawImageRectRect($hGraphicNew, $hImage, $ix, $iy, $iw, $ih, 0, 0, $iw, $ih)
  11.         _GDIPlus_GraphicsDispose($hGraphics)
  12.         _GDIPlus_GraphicsDispose($hGraphicNew)
  13.         _GDIPlus_ImageSaveToFile($hBMPNew, $ImgFileNew)
  14.         _GDIPlus_ImageDispose($hImage)
  15.         _GDIPlus_ImageDispose($hBMPNew)
  16.         _GDIPlus_Shutdown()
  17. EndFunc   ;==>_ImageCut
复制代码
发表于 2019-9-8 19:21:55 | 显示全部楼层
xymc 发表于 2019-9-6 20:59
#include
#include
#include

学习学习。收藏一下。
发表于 5 天前 | 显示全部楼层
afan大神真是厉害
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2019-9-20 08:15 , Processed in 0.078124 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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