1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. UEZ

Beiträge von UEZ

  • Kicktipp Bundesliga 2018/2019 Wett-Tippen! Jetzt mitmachen :-)

    • UEZ
    • 1. Juni 2019 um 13:58

    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.

  • Kicktipp Bundesliga 2018/2019 Wett-Tippen! Jetzt mitmachen :-)

    • UEZ
    • 28. Mai 2019 um 20:41

    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. X(

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

  • Kicktipp Bundesliga 2018/2019 Wett-Tippen! Jetzt mitmachen :-)

    • UEZ
    • 28. Mai 2019 um 19:48
    Zitat von Xorianator

    :rofl:

    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. ;)

  • AutoIt Windows Screenshooter v1.87 Build 2026-09-01

    • UEZ
    • 23. Mai 2019 um 16:15
    Zitat von Tweaky

    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. ;)

  • Kicktipp Bundesliga 2018/2019 Wett-Tippen! Jetzt mitmachen :-)

    • UEZ
    • 18. Mai 2019 um 21:44

    Glückwunsch an autoiter zum Sieg:thumbup:

  • GDI+ DoppelPendel

    • UEZ
    • 6. April 2019 um 12:55

    Dein Pendel sieht gut aus. :thumbup:

  • GDI+ Spiral Text

    • UEZ
    • 30. März 2019 um 14:59

    Nach langer Zeit wieder ein kleines GDI+ Skript von mir. :)

    GDI+ Spiral Text.png

    C
    ;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
  • rückwärtszähler in MsgBox möglich?

    • UEZ
    • 29. März 2019 um 09:42
    Zitat von Musashi

    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

    Alles anzeigen

    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.

  • rückwärtszähler in MsgBox möglich?

    • UEZ
    • 28. März 2019 um 23:09

    @Musashi bitte sehr. ;)

    Dateien

    _MsgBox Example.au3 522 Byte – 572 Downloads _MsgBox.au3 15,55 kB – 645 Downloads _GUIResourcePic.au3 22,74 kB – 614 Downloads
  • rückwärtszähler in MsgBox möglich?

    • UEZ
    • 28. März 2019 um 22:27

    Schaue mal hier rein -> http://www.autoitscript.com/forum/index.php?showtopic=100522

  • Maus / Punktkoordinaten Transformation

    • UEZ
    • 17. März 2019 um 12:33
    Zitat von Andy

    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.

  • Revision 2019

    • UEZ
    • 17. März 2019 um 12:29
    Zitat von Andy

    ...

    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!:rock:

    ...

    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.

  • Maus / Punktkoordinaten Transformation

    • UEZ
    • 16. März 2019 um 19:25
    Zitat von Alina

    UEZ , meinst Du das? ;)

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

    Nope, dies hier meinte ich:

    GDI+ Bitmap "trapezoid" zeichnen / DrawImage_4Points

  • Allgemeine Frage zu FreeBasic, FreePascal, PureBasic usw.

    • UEZ
    • 16. März 2019 um 11:31

    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?

  • Maus / Punktkoordinaten Transformation

    • UEZ
    • 15. März 2019 um 14:50
    Zitat von xSunLighTx3

    Ahhhh jetzt funktioniert es. Sieht echt mega aus!!

    Schade das AutoIt so eine lahme Kiste ist. :D

    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.

  • Maus / Punktkoordinaten Transformation

    • UEZ
    • 15. März 2019 um 12:48

    Ich habe das RAR Archiv in Zip umgewandelt, ansonsten mit der neusten WinRAR / 7-Zip Version probieren.

  • Maus / Punktkoordinaten Transformation

    • UEZ
    • 14. März 2019 um 20:37

    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.

    Dateien

    Layered Parallax Effect v0.70.zip 490,52 kB – 766 Downloads
  • Maus / Punktkoordinaten Transformation

    • UEZ
    • 14. März 2019 um 11:12

    Ich glaube, dass sieht richtig aus und müsste so in der Art funktionieren.

    C
    #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
    Alles anzeigen
  • Converting image to a defined pallet of colors

    • UEZ
    • 14. März 2019 um 10:54

    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.

  • Converting image to a defined pallet of colors

    • UEZ
    • 13. März 2019 um 22:41

    Bei MS direkt.

    https://docs.microsoft.com/en-us/windows/…p-convertformat

    https://docs.microsoft.com/en-us/windows/…ats-palettetype

    https://docs.microsoft.com/en-us/windows/…mats-dithertype

    https://docs.microsoft.com/en-us/windows/…ormat-constants

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™