Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 05:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



PNG in GUI einblenden

Discussion on PNG in GUI einblenden within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2009
Posts: 74
Received Thanks: 9
Question 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
DerCyberOnkel is offline  
Old 10/25/2012, 12:06   #2
 
Achat's Avatar
 
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
Achat is offline  
Thanks
1 User
Old 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 -.-
DerCyberOnkel is offline  
Old 10/26/2012, 13:05   #4


 
Lawliet's Avatar
 
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
Lawliet is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.