|
You last visited: Today at 05:19
Advertisement
PNG in GUI einblenden
Discussion on PNG in GUI einblenden within the AutoIt forum part of the Coders Den category.
10/25/2012, 08:30
|
#1
|
elite*gold: 0
Join Date: Apr 2009
Posts: 74
Received Thanks: 9
|
PNG in GUI einblenden
hallo erstmal
ich möchte gerne ein png einblenden lassen.
habe das ganze schonmal ohne gui mit ein gif gemacht und das geht.
möchte es aber als png da der hintergrund durchsichtig sein soll.
gif:
Code:
$hSplash = GUICreate("AutoIt - Splash", 159, 68,-1,-1,0x80000000 ) ; $WS_POPUP
GUICtrlCreatePic(@ProgramFilesDir & "\AutoIt3\Examples\GUI\logo4.gif",0,0,159,68)
WinSetTrans($hSplash,"",0)
GUISetState()
For $i = 0 To 255 Step 5
WinSetTrans($hSplash,"",$i)
Sleep($i/4)
Next
Sleep(1000)
For $i = 255 To 0 Step -5
WinSetTrans($hSplash,"",$i)
Sleep(10)
Next
GUIDelete($hSplash)
png:
Code:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#Include <WinAPI.au3>
$hGUI999 = GUICreate("Show PNG", 500, 500)
GUISetState()
_drawpng($hGUI999, "Bild.png",50 ,50)
; Loop until user exits
do
until GUIGetMsg() = $GUI_EVENT_CLOSE
Func _drawpng($pnggui,$pngpic, $pngx, $pngy)
Local $hImage999, $hGraphic999, $hImage999
; Load PNG image
_GDIPlus_StartUp()
$hImage999 = _GDIPlus_ImageLoadFromFile($pngpic)
$hGraphic999 = _GDIPlus_GraphicsCreateFromHWND($pnggui)
; Draw PNG image
_WinAPI_RedrawWindow($pnggui, 0, 0, $RDW_UPDATENOW)
_GDIPlus_GraphicsDrawImage($hGraphic999, $hImage999, $pngx, $pngy)
_WinAPI_RedrawWindow($pnggui, 0, 0, $RDW_VALIDATE)
; Clean up resources
_GDIPlus_GraphicsDispose($hGraphic999)
_GDIPlus_ImageDispose($hImage999)
_GDIPlus_ShutDown()
EndFunc
MsgBox (0, "lol", "looool",0,0)
das bild soll kommen und wieder verschwinden und dan soll die msg box kommen, stat der msg box soll halt das programm geladen werden, aber das ist erst mal egal.
würde mich freuen wenn einer helfen kann. danke
|
|
|
10/25/2012, 12:06
|
#2
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
|
Quote:
Um ein transparentes Bild zu erzeugen, ist es erforderlich, dass das GUI-Fenster mit dem erweiterten Stil WS_EX_LAYERED erzeugt wird. Das oberste linke Pixel wird hierbei als "transparente Farbe" benutzt. Werden mehrere Bilder erzeugt, bestimmt das letzte Bild die "transparente Farbe". Siehe Beispiel 2.
|
MfG
PS: Code bitte in [code]HIER REIN[/code] schreiben. Danke
|
|
|
10/25/2012, 12:58
|
#3
|
elite*gold: 0
Join Date: Apr 2009
Posts: 74
Received Thanks: 9
|
Code:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Global $gui, $guiPos, $pic, $picPos
Example2()
Func Example2()
Local $msg
$gui = GUICreate("Test transparentes Bild", 550, 550)
$pic = GUICreate("", 68, 71, 10, 20, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gui)
GUICtrlCreatePic("Bild.png", 0, 0, 0, 0)
GUISetState(@SW_SHOW, $pic)
GUISetState(@SW_SHOW, $gui)
HotKeySet("{ESC}", "main")
HotKeySet("{LEFT}", "left")
HotKeySet("{RIGHT}", "right")
HotKeySet("{DOWN}", "down")
HotKeySet("{UP}", "up")
$picPos = WinGetPos($pic)
$guiPos = WinGetPos($gui)
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE
EndFunc ;==>Example2
Func main()
$guiPos = WinGetPos($gui)
WinMove($gui, "", $guiPos[0] + 10, $guiPos[1] + 10)
EndFunc ;==>main
Func left()
$picPos = WinGetPos($pic)
WinMove($pic, "", $picPos[0] - 10, $picPos[1])
EndFunc ;==>left
Func right()
$picPos = WinGetPos($pic)
WinMove($pic, "", $picPos[0] + 10, $picPos[1])
EndFunc ;==>right
Func down()
$picPos = WinGetPos($pic)
WinMove($pic, "", $picPos[0], $picPos[1] + 10)
EndFunc ;==>down
Func up()
$picPos = WinGetPos($pic)
WinMove($pic, "", $picPos[0], $picPos[1] - 10)
EndFunc ;==>up
wie im beispiel, aber das bild wird mir nicht angezeigt.
es ist im richtigen ordner, (au3 und png auf desktop)
bild habe ich auch überprüft.
egal ob png oder gif, geht beides nicht -.-
|
|
|
10/26/2012, 13:05
|
#4
|
elite*gold: 2
Join Date: Jul 2009
Posts: 14,456
Received Thanks: 4,685
|
Quote:
filename Dateiname des zu ladenden Bildes. Es werden die Typen BMP, JPG, nicht animierte GIF unterstützt.
|
Gif kann aber auch Transparents
|
|
|
|
Similar Threads
|
Während Video Grafik einblenden?
05/13/2012 - Video Art - 3 Replies
Heyho,
um meine Frage zu verdeutlichen: Angenommen, ich habe nun ein Video und bin in der 8. Minute (spiele es halt ab) und dann erscheint oben links eine bestimmte Grafik oder Animation, für einen bestimmten Zeitraum.
Kennt jemand ein Tool, mit dem ich sowas machen könnte? Am besten Freeware? Oder ansonsten schießt einfach los mit den kostenpflichtigen Tools.
|
frage zu autoit bild einblenden
06/19/2011 - AutoIt - 3 Replies
ich will bei einen spiel im vollbild modus ein bild in die bildschirmmitte einblenden lassen. ich habe das bild fertig mit blauen hintergrund.
das blau sol durchsichtig sein. es handelt sich hierbei um ein fadenkreuz mit strich bild damit man besser zielen kann bei distanzschüsse besonders wen sich das ziel bewegt. hab es von dem strichbild aus´´m Leo 2 abgeschaut. ich weis wie das strichbild aussieht weil ich ja mal bei den panzern in meiner wehrzeit gedient hatte. wäre cool wen es sowas...
|
Wie kann ich das Scoreboard einblenden?
10/12/2010 - CrossFire - 10 Replies
Hey Leute,
die SuFu hat nichts ausgespuckt also frag ich hier:
Wie kann ich das Scoreboard einblenden?
Also mit TAB weiß ich, aber es funktioniert bei mir nicht. :/
Wenns mir jemand sagt bekommt er auch ein fettes THX. :b
|
Profilbild einblenden
03/29/2010 - Main - 3 Replies
Hi,
Bin jetzt schon länger hier
aber weiß nciht wie man das Profilbild einblendet.
Kann mir das wer sagen?:o:o:o
Hat sich geklärt man muss E*PVPERS Gold Kaufen
#Closed
|
d3d hook, texte einblenden
02/22/2009 - General Coding - 4 Replies
ich benutze den basehook von azorbix 3.0b mit dem ich in guild wars nun einen text einblenden möchte. es funktioniert, nur leider noch nicht so wie ich es haben möchte.
hier mein font (ID3DXFont *dFont):
if(!fontCreated){
D3DXCreateFont( m_pD3Ddev, 16, 0, FW_BOLD, false, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Black", &dFont);
}
und die funktion:
|
All times are GMT +2. The time now is 05:19.
|
|