_GDIPlus_GraphicsSetSmoothingMode BUG???

  • Ich möchte ein Bild ca 10x vergrößert in einem GUI darstellen, jedoch sollte jedes Pixel erkennbar sein, also sollte das Smoothing aus sein, was man ja bekanntlich mit der Funktion "_GDIPlus_GraphicsSetSmoothingMode" erreicht.
    Dies funktioniert bei mir nicht, ich besitze Windows XP.
    Folgendes Script zum testen:

    Spoiler anzeigen
    [autoit]

    #include <GDIPlus.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    ;Bild laden:
    $hBackground = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\alert.0.png")
    $hWidth = _GDIPlus_ImageGetWidth($hBackground)
    $hHeight = _GDIPlus_ImageGetHeight($hBackground)

    [/autoit] [autoit][/autoit] [autoit]

    ;Fenster erstellen
    $aWnd = GUICreate("Test",$hWidth*10,$hHeight*10,-1,-1,-1,$WS_EX_TOOLWINDOW)
    GUISetState()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND ($aWnd)

    [/autoit] [autoit][/autoit] [autoit]

    ;Verpixelt darstellen:
    _GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
    ConsoleWrite(_GDIPlus_GraphicsGetSmoothingMode($hGraphic) & @lf) ;Funktioniert aber nicht!

    [/autoit] [autoit][/autoit] [autoit]

    ;Zeichnen:
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBackground,0,0,$hWidth*10,$hHeight*10)

    [/autoit] [autoit][/autoit] [autoit]

    ;Warten:
    Do
    Sleep(10)
    until GUIGetMsg() = $GUI_EVENT_CLOSE

    ;Exit
    GUIDelete($aWnd)
    _GDIPlus_Shutdown()

    [/autoit]


    Image zum testen im Anhang!
    Und so sieht es aus bei mir:
    [Blockierte Grafik: http://img841.imageshack.us/img841/6215/imagez.png]
    Und das sieht woll sehr Smoothing-Mässig aus, oder?
    Wenn es keine Lösung dafür gibt, bin ich auch offen für andere Ideen, um das Bild pixelig in dem Gui anzuzeigen! :thumbup:

  • Musst du nicht das Bild zeichnen und dann erst umstellen, ob das Smoothy sein soll oder nicht?
    Ich kenn mich da leider nicht soo aus^^

  • Super :thumbup: ...funktioniert genau wie ich das wollte. Wo kann man eigentlich solche Dinge nachlesen?