通过位图对象句柄截取指定区域
本帖最后由 z761003 于 2022-9-28 22:25 编辑论坛里搜了个后台截图的函数,可以截,可截图必须是从窗口左上角坐标 x=0 y=0开始截,想把它改成截取指定区域改不来,请教下获取了位图对象句柄 $hBitmap 如果截取其中的部分呢(指定坐标区域)
是不是使用_GDIPlus_BitmapCloneArea(),搞半天也没搞出来,希望谁能帮改下
Func _ScreenHideWindow($i_win_handle, $iW, $iH)
Local $aRet = DllCall($dll, "hwnd", "GetWindowDC", "hwnd", $i_win_handle)
If @error Then Return SetError(@error, 0, -1)
Local $hDC = $aRet
$aRet = DllCall($hDLLGDI32, "hwnd", "CreateCompatibleDC", "hwnd", $hDC)
If @error Then Return SetError(@error, 0, -1)
Local $hMemDC = $aRet
$aRet = DllCall($hDLLGDI32, "hwnd", "CreateCompatibleBitmap", "hwnd", $hDC, "int", $iW, "int", $iH)
If @error Then Return SetError(@error, 0, -1)
Local $hBitmap = $aRet
;想把截取 $hBitmap 指定区域
$aRet = DllCall($hDLLGDI32, "hwnd", "SelectObject", "hwnd", $hMemDC, "hwnd", $hBitmap)
If @error Then Return SetError(@error, 0, -1)
Local $hOld = $aRet
$aRet = DllCall($dll, "int", "ReleaseDC", "hwnd", $i_win_handle, "hwnd", $hDC)
If @error Then Return SetError(@error, 0, -1)
_PrintWindow($i_win_handle, $hMemDC)
$aRet = DllCall($hDLLGDI32, "hwnd", "SelectObject", "hwnd", $hMemDC, "hwnd", $hOld)
If @error Then Return SetError(@error, 0, -1)
$aRet = DllCall($hDLLGDI32, "int", "DeleteDC", "hwnd", $hMemDC)
If @error Then Return SetError(@error, 0, -1)
$aRet = DllCall($hDLLGDI32, "int", "DeleteObject", "int", $hBitmap)
If @error Then Return SetError(@error, 0, -1)
Return
EndFunc
Func _PrintWindow($hWnd, $hMemDC, $iFlag = 0)
Local $aRet = DllCall($dll, "int", "PrintWindow", _
"hwnd", $hWnd, _
"hwnd", $hMemDC, _
"int", $iFlag)
Return $aRet
EndFunc ;==>_PrintWindow
此人是骗子,谨防上当受骗。
演示后,又以要demo 后续没下文
https://www.autoitx.com/thread-73120-1-1.html?_dsign=a6e32016
zhao_ming 发表于 2022-9-29 09:51
此人是骗子,谨防上当受骗。
有病要早点去看,别在网上丢人现眼 自己解决了
Func hBitmapCap($hBitmap,$x,$y,$x2,$y2,$saveimg=True) ;位图句柄截取指定坐标和宽高
_GDIPlus_StartUp ()
Local $hImage = _GDIPlus_BitmapCreateFromHBITMAP ($hBitmap)
_WinAPI_DeleteObject ($hBitmap)
Local $hClone = _GDIPlus_BitmapCloneArea ($hImage, $x,$y,$x2-$x,$y2-$y, $GDIP_PXF24RGB)
$hBitmap=_GDIPlus_BitmapCreateHBITMAPFromBitmap($hClone)
; 保存位图文件
_GDIPlus_ImageSaveToFile ($hClone, @DesktopDir & "\2.bmp")
; 清理资源
_GDIPlus_ImageDispose ($hClone)
_GDIPlus_ImageDispose ($hImage)
_GDIPlus_ShutDown ()
Return $hBitmap
EndFunc zhao_ming 发表于 2022-9-29 10:14
演示后,又以要demo 后续没下文
https://www.autoitx.com/thread-73120-1-1.html?_dsign=a6e32016
你一个GIF发过来都没通过,问你为什么里面有错误的,你回答你的GIF里有一张图片搞错了,人家的GIF是录像的,你的GIF还能一张一张图片自己拼的,你是神人!你才是个骗子,GIF还能拼凑给人家看,GIF都通不过我要你DEMO屁用,你个**,没通过也想要钱是吧,你这么想要钱让*****吧 本帖最后由 z761003 于 2022-9-29 10:34 编辑
你个垃圾本来我都把你拉黑不来理你就算了,让你一个人吠,你还跑论坛里来丢人,既然你要吠,我发完整聊天让别人看看,你连演示都是错误的,还想来骗钱,难怪你自己说经常被别人割韭菜,,,,,你这不是人家割你韭菜,是人家碰上你这垃圾及时止损,你还不自知
发聊天让别人来评评,谁的问题,垃圾,论坛里是你撒野的地方吗,这是学习的地方
出于什么目地,你还用我来讲,谨防上当受骗。 说的只有这么多,没时间跟你这种没素质的人讲话。
页:
[1]