Тема: AHK: Обрезка картинки или скриншота Gdip_CropImage
Задавался вопросом обрезки картинки или скриншота. На форуме темы на подобный вопрос я не находил и пришлось гуглить, расспрашивать и экспериментировать. Malcev мне помогал, направлял на путь истенный, за что ему огромное спасибо. Вот хочу показать продукты моих поисков, чтений и экспериментов.
Скрипт обрезки картинки:
1::
pToken := Gdip_Startup()
pBitmap := Gdip_CreateBitmapFromFile("test.png")
Gdip_GetDimensions(pBitmap, w, h)
pBitmap2 := Gdip_CropImage(pBitmap, 50, 50, w-100, h-100)
Gdip_SaveBitmapToFile(pBitmap2, "out.png")
Gdip_CropImage(pBitmap, x, y, w, h)
{
pBitmap2 := Gdip_CreateBitmap(w, h), G2 := Gdip_GraphicsFromImage(pBitmap2)
Gdip_DrawImage(G2, pBitmap, 0, 0, w, h, x, y, w, h)
Gdip_DeleteGraphics(G2)
return pBitmap2
}
Gdip_DisposeImage(pBitmap), Gdip_DisposeImage(pBitmap2)
Gdip_Shutdown(pToken)
returnСкрипт снимка скриншота активного или неактивного окна и его обрезка:
1::
hwnd := WinExist("A")
pToken := Gdip_Startup()
bmpHaystack := Gdip_BitmapFromHWND(hwnd)
Gdip_GetDimensions(bmpHaystack, w, h)
bmpHaystack2 := Gdip_CropImage(bmpHaystack, 50, 50, w-100, h-100)
Gdip_SaveBitmapToFile(bmpHaystack2, "out.png")
Gdip_CropImage(bmpHaystack, x, y, w, h)
{
bmpHaystack2 := Gdip_CreateBitmap(w, h), G2 := Gdip_GraphicsFromImage(bmpHaystack2)
Gdip_DrawImage(G2, bmpHaystack, 0, 0, w, h, x, y, w, h)
Gdip_DeleteGraphics(G2)
return bmpHaystack2
}
Gdip_DisposeImage(bmpHaystack), Gdip_DisposeImage(bmpHaystack2)
Gdip_Shutdown(pToken)
returnОба скрипта рабочие и требуют Gdip
Может у кого есть другие решения, может кто-то нашел ошибки - говорите, буду учится я и все. кому данная тема интересна.

