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
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
_GDIPlus_Startup()
;Bild laden:
$hBackground = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\alert.0.png")
$hWidth = _GDIPlus_ImageGetWidth($hBackground)
$hHeight = _GDIPlus_ImageGetHeight($hBackground)
;Fenster erstellen
$aWnd = GUICreate("Test",$hWidth*10,$hHeight*10,-1,-1,-1,$WS_EX_TOOLWINDOW)
GUISetState()
$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($aWnd)
;Verpixelt darstellen:
_GDIPlus_GraphicsSetSmoothingMode($hGraphic, 0)
ConsoleWrite(_GDIPlus_GraphicsGetSmoothingMode($hGraphic) & @lf) ;Funktioniert aber nicht!
;Zeichnen:
_GDIPlus_GraphicsDrawImageRect($hGraphic, $hBackground,0,0,$hWidth*10,$hHeight*10)
;Warten:
Do
Sleep(10)
until GUIGetMsg() = $GUI_EVENT_CLOSE
;Exit
GUIDelete($aWnd)
_GDIPlus_Shutdown()
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!