Die Bundesliga 19/20 fängt am 16. August an, ergo noch eine Menge Zeit. Ich werde Angang August die neue Tipprunde erstellen und wieder ein Topic dazu aufmachen.
Beiträge von UEZ
-
-
Frauen-WM? Hui, keine Ahnung, dass da eine Frauen-WM läuft. Momentan kann ich kein TV schauen, da meine beiden Sat-Schüsseln verstellt sind, bin auf Online IPTV angewiesen, den ich über mein Samsung Smart-TV streame, solange die Kanäle funzen, bis ich sie wieder aktualisieren muss.

Ich weiß auch nicht, wer überhaupt mittippen möchte. Ich persönlich stehe noch nicht auf Frauen-Fußball, da fehlt noch einiges...

-

Muss dich beunruhigen, der 1. FC Union Berlin. Verfolge Fußball nicht aktiv, gehe aber ab und zu in deren Stadion. Am 23.12. erstrecht.
Union Berlin ist nun erstklassig, ergo bei der nächsten Tipprunde kannst du dann mittippen.

-
Habe gerade Win 10 1903 installiert und die aktuelle Version 1.83 funktioniert

Wie hast du den WebScreenshot nun hinbekommen?
Die GDI Funktionen wurden anscheinend in 1809 dahin gehend geändert, dass das Kopieren des Bildinhaltes nur noch für die sichtbaren Bereiche funktioniert, alle anderen Bereiche bleiben schwarz. Vorher musste nur 1 Pixel im sichtbaren Bereich sein, damit das komplette Fenster geblittet werden konnte.
Ward hatte eine Weg gefunden (über AutoItObject), wie man das Rendern des IE Inhalts in ein DC umleiten kann, so dass man dann nur noch die Bitmap abspeichern muss. Ich habe meine gegen diese Funktion ausgetauscht.
Danke für dein Feeback. Ich hatte auch die 1903 in meine VM getestet.

-
Glückwunsch an autoiter zum Sieg

-
Dein Pendel sieht gut aus.

-
Nach langer Zeit wieder ein kleines GDI+ Skript von mir.
C
Alles anzeigen;Coded by UEZ v0.40 build 2019-03-30 #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> _GDIPlus_Startup() Global Const $iW = 600, $iH = 600 Global Const $hGUI = GUICreate("GDI+ Spiral Text", $iW, $iH) GUISetBkColor(0x606E8C) GUISetState() Global Const $hDC = _WinAPI_GetDC($hGUI) Global Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Global Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) Global Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap) Global Const $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) _GDIPlus_GraphicsSetSmoothingMode($hCanvas, 4) _GDIPlus_GraphicsClear($hCanvas, 0xFF606E8C) _GDIPlus_GraphicsSetPixelOffsetMode($hCanvas, 4) _GDIPlus_GraphicsSetInterpolationMode($hCanvas, 7) _GDIPlus_GraphicsSetCompositingQuality($hCanvas, 2) ;~ _GDIPSpiralText(" AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting.") _GDIPSpiralText(' AutoIt v3 is a freeware BASIC-like scripting language designed for automating the Windows GUI and general scripting. It uses a combination of simulated keystrokes, mouse movement and window/control manipulation in order to automate tasks in a way not possible or reliable with other languages (e.g. VBScript and SendKeys). AutoIt is also very small, self-contained and will run on all versions of Windows out-of-the-box with no annoying "runtimes" required!..............') _GDIPlus_GraphicsDispose($hCanvas) _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hHBitmap) _WinAPI_ReleaseDC($hGUI, $hDC) _GDIPlus_Shutdown() GUIDelete() Exit Func _GDIPSpiralText($sText) Local Const $fPi = ACos(-1), $fRad = ACos(-1) / 180, $fDeg = 180 / ACos(-1) Local $aText = StringSplit(StringReverse($sText), "", 2), $i, $fCx = $iW / 2, $fCy = $iH / 2, $fDegree, $iLen = UBound($aText) Local $tCoord = DllStructCreate("float x[" & $iLen & "];float y[" & $iLen & "];ptr img[" & $iLen & "];ptr gfx[" & $iLen & "]") Local $fSize = $iLen / Sqrt(($iW * $iW) + ($iH * $iH)) * 512, $fSize2 = $fSize * 2 Local $mwx, $mwy, $fFontSize, $f1, $f2, $c1 = $fSize / 2, $c2 = $fSize2 / 2, $fRadius = Sqrt(($iW * $iW) / 10 + ($iH * $iH) / 10) Local $iDX = -$fSize / 2, $iDY = $iDX Local $hDLL = DllOpen("user32.dll"), $bESC = False, $c3, $c4 = $iLen / 6, $c5 = 0.85 * Sqrt(($iW * $iW) / 2 + ($iH * $iH) / 2) / 2 #Region GDI+ For $i = 0 To $iLen - 1 $tCoord.img($i + 1) = _GDIPlus_BitmapCreateFromScan0($fSize, $fSize) $tCoord.gfx($i + 1) = _GDIPlus_ImageGetGraphicsContext($tCoord.img($i + 1)) _GDIPlus_GraphicsSetSmoothingMode($tCoord.gfx($i + 1), 6) _GDIPlus_GraphicsSetTextRenderingHint($tCoord.gfx($i + 1), 4) _GDIPlus_GraphicsSetPixelOffsetMode($tCoord.gfx($i + 1), 4) Next Local Const $hPath = _GDIPlus_PathCreate() _GDIPlus_PathAddEllipse($hPath, 4, 4, $iW - 9, $iH - 9) $tRECTF = _GDIPlus_RectFCreate(0, 0, $fSize, $fSize / 2) Local Const $hBrush = _GDIPlus_LineBrushCreateFromRectWithAngle($tRECTF, 0xFF101030, 0xFF3030E0, 45, 0, 1), _ $hFormat = _GDIPlus_StringFormatCreate(), _ $hFamily = _GDIPlus_FontFamilyCreate("Consolas"), _ $hBrush_c = _GDIPlus_BrushCreateSolid(0xFF000000), _ $hPen = _GDIPlus_PenCreate(0x18101010), $hPen2 = _GDIPlus_PenCreate(0x30101010, 8), $hBrush2 = _GDIPlus_PathBrushCreateFromPath($hPath) _GDIPlus_LineBrushSetSigmaBlend($hBrush, 0.9, 0.95) _GDIPlus_StringFormatSetAlign($hFormat, 1) _GDIPlus_StringFormatSetLineAlign($hFormat, 1) Local Const $hBitmap_Bg = _GDIPlus_BitmapCreateFromScan0($iW, $iH), _ $hGfx_Bg = _GDIPlus_ImageGetGraphicsContext($hBitmap_Bg) _GDIPlus_GraphicsSetSmoothingMode($hGfx_Bg, 6) _GDIPlus_GraphicsSetPixelOffsetMode($hGfx_Bg, 4) _GDIPlus_PathBrushSetCenterColor($hBrush2, 0xFFC0C0C0) _GDIPlus_PathBrushSetCenterPoint($hBrush2, $fCx, $fCy) _GDIPlus_PathBrushSetSurroundColor($hBrush2, 0xFFFFFFFF) _GDIPlus_PathBrushSetGammaCorrection($hBrush2, True) _GDIPlus_GraphicsFillEllipse($hGfx_Bg, 4, 4, $iW - 9, $iH - 9, $hBrush2) _GDIPlus_GraphicsDrawEllipse($hGfx_Bg, 4, 4, $iW - 9, $iH - 9, $hPen2) Local Const $hBitmap = _GDIPlus_BitmapCreateFromScan0($iW, $iH), _ $hGfx = _GDIPlus_ImageGetGraphicsContext($hBitmap) _GDIPlus_GraphicsSetSmoothingMode($hGfx, 6) _GDIPlus_GraphicsSetPixelOffsetMode($hGfx, 4) Local Const $hBitmap_Cursor = _GDIPlus_BitmapCreateFromScan0($fSize2, $fSize2), _ $hGfx_Cursor = _GDIPlus_ImageGetGraphicsContext($hBitmap_Cursor) _GDIPlus_GraphicsSetSmoothingMode($hGfx_Cursor, 6) _GDIPlus_GraphicsSetPixelOffsetMode($hGfx_Cursor, 4) Local Const $hMatrix = _GDIPlus_MatrixCreate(), $hMatrix2 = _GDIPlus_MatrixCreate() _GDIPlus_PenSetStartCap($hPen, 0x14) #EndRegion GDI+ For $i = $iLen - 1 To 0 Step -1 _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap_Bg, 0, 0, $iW, $iH) _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap, 0, 0, $iW, $iH) $fDegree = $iLen / $c4 * $i ;space between chars $tCoord.x($i + 1) = $fCx + Sin($fDegree * $fRad) * $fRadius $tCoord.y($i + 1) = $fCy + Cos($fDegree * $fRad) * $fRadius $fRadius -= $c5 / $iLen $fFontSize = $fRadius / 7 ;calculate the angle of each char $mwx = $tCoord.x($i + 1) - $fCx $mwy = $fCy - $tCoord.y($i + 1) $c3 = ($mwx + Sqrt($mwx * $mwx + $mwy * $mwy)) $fAngle = 2 * -ATan($mwy / $c3) * $fDeg If Not $c3 Then If $mwx < 0 Then $fAngle = -180 Else $fAngle = 180 EndIf EndIf $f1 = $iDX + $c1 $f2 = $iDY + $c1 If $i < $iLen - 1 Then _GDIPlus_PenSetWidth($hPen, $fFontSize / 8) DllCall($__g_hGDIPDll, "int", "GdipDrawLine", "handle", $hCanvas, "handle", $hPen, "float", $tCoord.x($i + 1) + $f1, "float", $tCoord.y($i + 1) + $f2, _ "float", $tCoord.x($i + 2) + $f1, "float", $tCoord.y($i + 2) + $f2) DllCall($__g_hGDIPDll, "int", "GdipDrawLine", "handle", $hGfx, "handle", $hPen, "float", $tCoord.x($i + 1) + $f1, "float", $tCoord.y($i + 1) + $f2, _ "float", $tCoord.x($i + 2) + $f1, "float", $tCoord.y($i + 2) + $f2) EndIf ;rotated each char according to angle _GDIPlus_MatrixSetElements($hMatrix) ;reset matrix _GDIPlus_MatrixTranslate($hMatrix, $c1, $c1) _GDIPlus_MatrixRotate($hMatrix, 90 + $fAngle) _GDIPlus_MatrixTranslate($hMatrix, -$c1, -$c1) _GDIPlus_GraphicsSetTransform($tCoord.gfx($i + 1), $hMatrix) ;rotate cursor _GDIPlus_MatrixSetElements($hMatrix2) ;reset matrix _GDIPlus_MatrixTranslate($hMatrix2, $c2, $c2) _GDIPlus_MatrixRotate($hMatrix2, 90 + $fAngle) _GDIPlus_MatrixTranslate($hMatrix2, -$c2, -$c2) _GDIPlus_GraphicsSetTransform($hGfx_Cursor, $hMatrix2) _GDIPlus_GraphicsClear($hGfx_Cursor, 0x00000000) DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hGfx_Cursor, "handle", $hBrush_c, _ "float", $fSize * 0.475, "float", $fSize * 0.2, _ "float", $fSize * 1.075, "float", $fSize * 1.575) $hFont = _GDIPlus_FontCreate($hFamily, $fFontSize) _GDIPlus_GraphicsDrawStringEx($tCoord.gfx($i + 1), $aText[$i], $hFont, _GDIPlus_RectFCreate(0, 0, $fSize, $fSize), $hFormat, $hBrush) _GDIPlus_GraphicsDrawImageRect($hCanvas, $tCoord.img($i + 1), $iDX + $tCoord.x($i + 1), $iDY + $tCoord.y($i + 1), $fSize, $fSize) _GDIPlus_GraphicsDrawImageRect($hGfx, $tCoord.img($i + 1), $iDX + $tCoord.x($i + 1), $iDY + $tCoord.y($i + 1), $fSize, $fSize) _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap_Cursor, $tCoord.x($i + 1) + $f1 - $fFontSize, $tCoord.y($i + 1) + $f2 - $fFontSize, $fFontSize * 2, $fFontSize * 2) _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) ;blit drawn bitmap to GUI _GDIPlus_FontDispose($hFont) ;~ _GDIPlus_GraphicsDrawLine($hGfx, $iW / 2, 0, $iW / 2, $iH) ;~ _GDIPlus_GraphicsDrawLine($hGfx, 0, $iH / 2, $iW, $iH / 2) _GDIPlus_GraphicsClear($hCanvas, 0xFF606E8C) If Not $bESC Then Sleep(30) If _IsPressed("20", $hDLL) Then ;speed up $bESC = True EndIf Next DllClose($hDLL) _GDIPlus_MatrixSetElements($hMatrix) _GDIPlus_PenSetWidth($hPen, 8) Do _GDIPlus_MatrixTranslate($hMatrix, $fCx, $fCy) _GDIPlus_MatrixRotate($hMatrix, -0.1) _GDIPlus_MatrixTranslate($hMatrix, -$fCx, -$fCy) _GDIPlus_GraphicsSetTransform($hCanvas, $hMatrix) _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap_Bg, 0, 0, $iW, $iH) _GDIPlus_GraphicsDrawImageRect($hCanvas, $hBitmap, 0, 0, $iW, $iH) _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) _GDIPlus_GraphicsClear($hCanvas, 0xFF606E8C) Until GUIGetMsg() = $GUI_EVENT_CLOSE _GDIPlus_PathDispose($hPath) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_PenDispose($hPen) _GDIPlus_PenDispose($hPen2) _GDIPlus_BrushDispose($hBrush_c) _GDIPlus_BrushDispose($hBrush) _GDIPlus_MatrixDispose($hMatrix) _GDIPlus_MatrixDispose($hMatrix2) For $i = 0 To $iLen - 1 _GDIPlus_GraphicsDispose($tCoord.gfx($i + 1)) _GDIPlus_BitmapDispose($tCoord.img($i + 1)) Next _GDIPlus_GraphicsDispose($hGfx) _GDIPlus_BitmapDispose($hBitmap) _GDIPlus_GraphicsDispose($hGfx_Cursor) _GDIPlus_BitmapDispose($hBitmap_Cursor) _GDIPlus_GraphicsDispose($hGfx_Bg) _GDIPlus_BitmapDispose($hBitmap_Bg) EndFunc ;==>_GDIPSpiralText -
Alles anzeigen
Danke Dir

Ich selbst benötige sie momentan zwar nicht, aber immer gut so etwas im Köcher zu haben.
Off-Topic :
Es ist schon auffällig, wieviele Links nach gar nicht mal so langer Zeit in's Leere laufen. Daher sollte man nützliche Skripte immer lokal sichern, gemäß dem Motto : "Doppelt hält besser"

UEZ :
Du bist ja auch im engl. Forum sehr aktiv. Es gibt (gab) viele Topskripte des Users Ward - leider hat er sie um 2013/2014 'rum alle gelöscht. Nur aus Interesse : Kennst Du die Hintergründe ?
Unabhängig davon ist das Projekt ExtMsgBox-UDF von Melba23 sicher einen Blick wert, zumal der Thread noch aktiv läuft.
Gruß Musashi
So aktiv bin ich nicht mehr, aber ich kann dir leider nichts zu Ward sagen. Er ist schon lange nicht mehr aktiv. Er scheint überall mal aktiv zu sein. Er hat für PureBasic AutoIt Funktionen programmiert - scheint ein universal Talent zu sein.
-
@Musashi bitte sehr.

-
-
Hmmm, die in UEZ´s Post verlinkte Funktion läuft auf modernen INTEL-Chips nicht, ich vermute ein Überlauf-Problem, da hatten AMD-Systeme immer recht liberal reagiert^^
Ich werde diese Funktion mal "modernisieren" und ggf nach SSE portieren. Oder jemand schreibt in einer der Compilersprachen eine DLL / Funktion.
Hast du noch die reine AutoIt Version? Dann könnte ich daraus eine DLL erstellen? War die Transformation affin oder mit korrekter Perspektive?
Die FB Version oben ist leider nur eine affine Transformation und für kleine Bilder nicht zu gebrauchen.
-
...
Das letzte Jahr hatten UEZ und ich ausfallen lassen, aber in den Jahren davor hatten wir mit einigen hier aus dem Forum einen super Sonntag!

...
Soweit ich mich erinnern kann, haben wir bereits 2 Jahre hintereinander ausfallen lassen.

Zur Info: die revision findet wie immer in Saarbrücken über das Ostern Wochenende statt. Wir haben in der Vergangenheit immer Sonntags die revision besucht. Der Eintritt scheint immer noch 50€ nur für den Sonntag zu kosten.
Abfahrt wäre dann aus dem Rhein-Main Gebiet, einen genauen Treffpunkt können wir dann noch ausmachen.
-
UEZ , meinst Du das?

2015-04-17 : Bilder trapezförmig skalieren und mit Text versehen. <-- Link

Nope, dies hier meinte ich:
-
Ich persönlich bin mit FreeBasic sehr zu frieden, hat mehr oder weniger alles, was man braucht inkl. Inline Assembler / OOP und ist relativ schnell, lässt sich relativ leicht lernen.
Wer mit Linux arbeitet wird auch FreeBasic sehr zu schätzen wissen, da der Code sich auch unter Linux kompilieren lässt (plattformübergreifend).
JavaScript wäre für mich noch eine Option eine weitere Programmiersprache zu lernen, denn mit der der Three Lib kann man tolle Sachen "zaubern".
Apropos "zaubern", wer hätte Lust dieses Jahr die revision 2019 an einem Ostern Sonntag zu besuchen?
-
-
Ahhhh jetzt funktioniert es. Sieht echt mega aus!!
Schade das AutoIt so eine lahme Kiste ist.

Nun ja, mit externer Hilfe könnte man schon dies in AutoIt implementieren. Irgendwo hier sollte es ein Code von eukalyptus geben, der ein Trapezoid von Bildern erstellen kann.
Der Rest schluckt kaum Ressourcen.
-
Ich habe das RAR Archiv in Zip umgewandelt, ansonsten mit der neusten WinRAR / 7-Zip Version probieren.
-
Hier der Versuch den Effekt nachzuprogrammieren, aber nicht in AutoIt, sondern FreeBasic.
AutoIt ist dafür viel zu langsam.Ist nicht so "geschmeidig" wie die Web Version geworden.
Die Exe ist als x64 kompiliert, Source Code liegt bei.
-
Ich glaube, dass sieht richtig aus und müsste so in der Art funktionieren.
C
Alles anzeigen#pragma compile(Icon, "c:\Program Files (x86)\AutoIt3\Icons\au3.ico") #AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/so /pe /rm #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3" #include <GDIPlus.au3> #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> _GDIPlus_Startup() Global $hGUI, $hCanvas, $hPen, $iFPS = 0, $iShowFPS = 0, $bExit Global Const $iW = 800, $iH = 600, $iWh = $iW / 2, $iHh = $iH / 2, $sTitle = "GDI+ Test" Global Const $fPi = ACos(-1), $fRad = $fPi / 180, $fDeg = 180 / $fPi Global $iOldMx = -1, $iOldMy = -1 AutoItSetOption("GUIOnEventMode", 1) GDIPlus_Test() GUIRegisterMsg($WM_MOUSEMOVE, "") AutoItSetOption("GUIOnEventMode", 0) _GDIPlus_Shutdown() Func GDIPlus_Test() $bExit = False $hGUI = GUICreate($sTitle, $iW, $iH) ;, 0, 0, $WS_POPUP) GUISetState(@SW_SHOW, $hGUI) ;~ GUISetCursor(16, 1) ;create canvas elements Local Const $hDC = _WinAPI_GetDC($hGUI) Local Const $hHBitmap = _WinAPI_CreateCompatibleBitmap($hDC, $iW, $iH) Local Const $hDC_backbuffer = _WinAPI_CreateCompatibleDC($hDC) Local Const $DC_obj = _WinAPI_SelectObject($hDC_backbuffer, $hHBitmap) $hCanvas = _GDIPlus_GraphicsCreateFromHDC($hDC_backbuffer) _GDIPlus_GraphicsSetSmoothingMode($hCanvas, $GDIP_SMOOTHINGMODE_HIGHQUALITY) _GDIPlus_GraphicsSetPixelOffsetMode($hCanvas, $GDIP_PIXELOFFSETMODE_HIGHQUALITY) Local Const $hBrush_Clr = _GDIPlus_BrushCreateSolid(0xFF000000), _ $hBrush_FPS = _GDIPlus_BrushCreateSolid(0xF0A0A0A0), _ $hFormat_FPS = _GDIPlus_StringFormatCreate(), _ $hFamily_FPS = _GDIPlus_FontFamilyCreate("Arial"), _ $hFont_FPS = _GDIPlus_FontCreate($hFamily_FPS, 8), _ $tLayout_FPS = _GDIPlus_RectFCreate(0, 0, 60, 16) $hPen = _GDIPlus_PenCreate(0xFFFFFFFF) $iFPS = 0 GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit_About") AdlibRegister("CalcFPS", 1000) Local $moveForce = 40, $rotateForce = 80, $aMpos, $moveX, $moveY Local $tCoords1 = DllStructCreate("float x1; float y1;float x2; float y2;float x3; float y3;float x4; float y4") $tCoords1.x1 = 200 $tCoords1.y1 = 100 $tCoords1.x2 = 600 $tCoords1.y2 = 100 $tCoords1.x3 = 200 $tCoords1.y3 = 500 $tCoords1.x4 = 600 $tCoords1.y4 = 500 Local $tCoords2 = DllStructCreate("float x1; float y1;float x2; float y2;float x3; float y3;float x4; float y4") $tCoords2.x1 = 250 $tCoords2.y1 = 200 $tCoords2.x2 = 630 $tCoords2.y2 = 200 $tCoords2.x3 = 250 $tCoords2.y3 = 400 $tCoords2.x4 = 630 $tCoords2.y4 = 400 Do DllCall($__g_hGDIPDll, "int", "GdipFillRectangle", "handle", $hCanvas, "handle", $hBrush_Clr, "float", 0, "float", 0, _ "float", $iW, "float", $iH) ;erase canvas background DrawRect($tCoords1, 50, 80) DrawRect($tCoords2, 25, 80, 1) _GDIPlus_GraphicsDrawStringEx($hCanvas, "FPS: " & $iShowFPS, $hFont_FPS, $tLayout_FPS, $hFormat_FPS, $hBrush_FPS) ;draw background message text _WinAPI_BitBlt($hDC, 0, 0, $iW, $iH, $hDC_backbuffer, 0, 0, $SRCCOPY) ;blit drawn bitmap to GUI $iFPS += 1 If $bExit Then ExitLoop Until Not Sleep(30) AdlibUnRegister("CalcFPS") ;release resources _GDIPlus_FontDispose($hFont_FPS) _GDIPlus_FontFamilyDispose($hFamily_FPS) _GDIPlus_StringFormatDispose($hFormat_FPS) _GDIPlus_BrushDispose($hBrush_Clr) _GDIPlus_BrushDispose($hBrush_FPS) _GDIPlus_GraphicsDispose($hCanvas) _WinAPI_SelectObject($hDC_backbuffer, $DC_obj) _WinAPI_DeleteDC($hDC_backbuffer) _WinAPI_DeleteObject($hHBitmap) _WinAPI_ReleaseDC($hGUI, $hDC) GUIDelete($hGUI) EndFunc ;==>GDIPlus_Test Func DrawRect(ByRef $tCoords, $moveForce, $rotateForce, $fAcceleration = 0) Local $aMpos = GUIGetCursorInfo($hGUI) $moveX = ($aMpos[1] - $iHh) / $iHh * -$moveForce $moveY = ($aMpos[0] - $iWh) / $iWh * -$moveForce $rotateX = -(($aMpos[0] / $iW * $rotateForce * 2) - $rotateForce) * $fRad $rotateY = (($aMpos[1] / $iH * $rotateForce * 2) - $rotateForce) * $fRad ;xy1 xy2 ; ;xy3 xy4 Local $x1, $x2, $x3, $x4, $y1, $y2, $y3, $y4 Local $fRotX = Cos($rotateX), $fRotY = Cos($rotateY) $x1 = $tCoords.x1 + $moveX * $fRotX - $moveY * $fAcceleration $y1 = $tCoords.y1 + $moveY * $fRotY - $moveX * $fAcceleration $x2 = $tCoords.x2 - $moveX * $fRotX - $moveY * $fAcceleration $y2 = $tCoords.y2 - $moveY * $fRotY - $moveX * $fAcceleration $x3 = $tCoords.x3 - $moveX * $fRotX - $moveY * $fAcceleration $y3 = $tCoords.y3 - $moveY * $fRotY - $moveX * $fAcceleration $x4 = $tCoords.x4 + $moveX * $fRotX - $moveY * $fAcceleration $y4 = $tCoords.y4 + $moveY * $fRotY - $moveX * $fAcceleration _GDIPlus_GraphicsDrawLine($hCanvas, $x1, $y1, $x2, $y2, $hPen) _GDIPlus_GraphicsDrawLine($hCanvas, $x3, $y3, $x4, $y4, $hPen) _GDIPlus_GraphicsDrawLine($hCanvas, $x1, $y1, $x3, $y3, $hPen) _GDIPlus_GraphicsDrawLine($hCanvas, $x2, $y2, $x4, $y4, $hPen) EndFunc Func _Exit_About() $bExit = True EndFunc ;==>_Exit_About Func CalcFPS() ;display FPS $iShowFPS = $iFPS $iFPS = 0 EndFunc ;==>CalcFPS -
Die GDI+ Funktion macht genau das, was du ihm sagt, nämlich eine Reduzierung der Farbwerte gemäß deiner Farbtabelle.
Du müsstest eher die Farben manipulieren. Wie genau, weiß ich nicht und ich kann dir nicht sagen, ob dies direkt über GDI+ möglich ist.
-