Hallo liebe Community, ich versuche gerade ein kleines Programm zu scripten, welches mir Bilder zentriert auf einen durch mich definierten Hintergrund ablegt und neu abspeichert. Das Programm ist soweit auch fertig, jedoch habe ich ein Problem, an dem ich zur Zeit einfach nicht weiter komme.
Als erstes starte ich die GDI+ Library mit
[autoit]_GDIPlus_Startup()
[/autoit]danach erzeuge ich ein Bitmap und lasse mir dessen Handle geben:
[autoit]$hBlankImage = _WinAPI_CreateBitmap($pxX, $pxY, 1, 32)
[/autoit]als nächstes erstelle ich aus dem Bitmap-Handle ein Bitmap-Objekt um den horizontalen und vertikalen DPI-Wert des blanko Bildes an das Quellbild anzupassen:
[autoit]$oImage = _GDIPlus_BitmapCreateFromHBITMAP($hBlankImage)
[/autoit]. Genau hier funktioniert es dann nicht mehr. Jedoch nur auf Servern. Ich habe folgende getestet: Win 2003 Std, Win 2003R2 Std, Win 2008 Std, Win 2008 R2 Datacenter. Auf all diesen Systemen bekomme ich von GDI+ den Errorwert 7 zurück, welcher für Win32Error laut MS steht.
Auf Win XP, Vista, Win7 egal ob 64 oder 32 bit, funktioniert das problemlos. Hat jemand von euch evtl noch einen Tip?
Gruß
Cele
~ Nachtrag ~
Ich konnte jetzt das Problem "lösen". Nachdem ich die Farbtiefe des Bitmaps auf 16bit herabgesetzt habe, hat dies auf einmal auf den Servern funktioniert.
[autoit]$hBlankImage = _WinAPI_CreateBitmap($pxX, $pxY, 1, 16)
[/autoit]Jedoch bleibt die Frage, warum das mit 24bit oder 32bit nicht funktioniert. Bei diesen Einstellungen bekomme ich jeweils Win32Error zurück. Ich dachte evtl. an die Verbindung, da ich mich per RDP auf die Server verbinde jedoch auch wenn die Sitzung mit 32bit läuft, erscheint dieser Fehler. Ich kenne mich in diesem Bereich nicht so aus aber liegt hier das Problem evtl. bei der Grafikkarte? Wird die im Zusammenhang mit GDI+ verwendet?
Gruß
Cele
~ Nachtrag #2 ~
Ok - nun habe ich wieder ein Problem... Die Idee für dieses Programm war, es durch einen Job automatisch laufen zu lassen und die Bilder entsprechend unseren Vorgaben neu zu erstellen, sodass diese richtig dargestellt werden.
Nachdem nun durch die herabsetzung der Farbtiefe mein erstes Problem sich lösen ließ, bin ich jetzt auf ein zweites getoßen, was wohl in die gleiche Kerbe schlägt wie auch das erste Problem. Da dies ja als automatischer Job laufen soll, habe ich diesen einmal eingerichtet und mich vom Server abgemeldet. Nun habe ich wieder das gleiche Trauerspiel. Die Bilder, die er anpassen sollte, wurden nicht verändert, bzw. nicht im Zielverzeichnis abgespeichert.
Muss für GDI+ Funktionen eine aktive Benutzersitzung bestehen? Weil das ist ja nicht sonderlich hilfreich, wenn ein Benutzer diesen Job immer ausführen muss, damit die Bilder angepasst werden -.-