Hallo,
ich möchte möglichst klein einen Screenshot abspeichern.
so ist der screenshot noch 1MB groß:
_ScreenCapture_Capture("test.jpg",$aRes[0],$aRes[1],$aRes[2],$aRes[3])
diese Funktion benutze ich zum verkleinern:
[autoit]Func _picture($input)
_GDIPlus_Startup()
$himg = _GDIPlus_ImageLoadFromFile($input)
$hGraphics = _GDIPlus_ImageGetGraphicsContext($himg)
_GDIPlus_GraphicsDrawImage($hGraphics, $himg, 0, 0)
_GDIPlus_ImageSaveToFile($himg, $date2)
_GDIPlus_ImageDispose($himg)
_GDIPlus_Shutdown()
EndFunc
dadurch wird der screenshot auf knapp 250KB komprimiert
leider kann ich den screenshot nicht sofort verkleinert abspeichern, deshalb lasse ich den screenshot in sperriger form abspeichern und lösche diese
nach der kompression wieder
leider klappt das nicht
hier mein script:
#include <ScreenCapture.au3>
#include <Array.au3>
#include <WinAPI.au3>
#include <Gdiplus.au3>
Global $aRes = _GetGlobalResolution()
_ScreenCapture_Capture("groß.jpg",$aRes[0],$aRes[1],$aRes[2],$aRes[3])
_picture("groß.jpg")
FileDelete("groß.jpg")
Func _picture($input)
_GDIPlus_Startup()
$himg = _GDIPlus_ImageLoadFromFile($input)
$hGraphics = _GDIPlus_ImageGetGraphicsContext($himg)
_GDIPlus_GraphicsDrawImage($hGraphics, $himg, 0, 0)
_GDIPlus_ImageSaveToFile($himg, "klein.jpg")
_GDIPlus_ImageDispose($himg)
_GDIPlus_Shutdown()
EndFunc
Func _GetGlobalResolution()
Local $aRes[4], $hWindow, $stRET
$hWindow = _WinAPI_GetDesktopWindow()
$stRET = _WinAPI_GetWindowPlacement($hWindow)
If Not @error Then
$aRes[0] = DllStructGetData($stRET, 'rcNormalPosition', 1) ; left
$aRes[1] = DllStructGetData($stRET, 'rcNormalPosition', 2) ; top
$aRes[2] = DllStructGetData($stRET, 'rcNormalPosition', 3) ; right
$aRes[3] = DllStructGetData($stRET, 'rcNormalPosition', 4) ; bottom
Return $aRes
Else
Return SetError(1, 0, 0)
EndIf
EndFunc
Die groß.jpg bleibt nach ausführen des scripts trotzdem noch übrig,
wenn ich sie mit einem seperaten script löschen möchte wird sie gelöscht, deshalb vermute ich, dass das Löschen hier fehlschlägt, weil die Datei
in diesem Prozess geöffnet ist.
Komisch, denn nach _GDIPlus_Shutdown() dürfte sie nicht mehr geöffnet sein.
Kann mir jemand weiterhelfen?
LG
Schweizergeizer