![]() |
Bild direkt auf Desktop ausgeben
Aloha!
Ich habe ein GIF Bild (wahlweise PNG), also mit Transparenz, das ich gerne einfach auf den Desktop ausgeben würde. Nur, wie ihr euch denken könnt, ich habe keinen Plan wie man sowas eigentlich anstellt :gruebel: Deswegen hoffe ich jetzt einfach mal auf eure Mithilfe :mrgreen: |
Re: Bild direkt auf Desktop ausgeben
Moin Meflin,
was verstehst du denn unter ausgeben ? Das Bild als Hintergrundbild auf den Desktop legen ? Dann wäre vielleicht ![]() Schöne Grüße :hi: |
Re: Bild direkt auf Desktop ausgeben
Nein, das meine ich nicht.
Das Bild stellt einen Cursor dar. Wenn man einen Hotkey meines Programmes betätigt, soll dieses Cursorbild an der Stelle auf dem Desktop einfach hingemalt werden, an der der echte Cursor sich gerade befindet. Egal was da ist, und zwar oben drüber, nciht als Hintergrund. |
Re: Bild direkt auf Desktop ausgeben
du kannst das ganze auf ein TBitmap assignen und dann auf die DesktopDC zeischnen.
Delphi-Quellcode:
var LDC: HDC;
begin LDC := GetDC(0); BitBlt(LDC, XPos, YPos, DeinBitmap.Width, DeinBitmap.Height, DeinBitmap.Canvas.Handle, 0, 0, SRCCOPY); ReleaseDC(0, LDC); end; |
Re: Bild direkt auf Desktop ausgeben
Ok, das funktioniert prinzipiell, nur nicht mit Transparenz. Mein TPNGImage kennt kein Canvas.Handle :( und TBitmap unterstützt wiederum keine PNGs oder GIFs. Was liese sich da machen?
|
Re: Bild direkt auf Desktop ausgeben
ich kenne TPNGImage nicht. Prinzipiell muss es da aber ein Byte pro Pixel für den Alphakanal geben. Und das musst du beim ausgeben mit einbeziehen. Wie gibst du das TPNGImage sonst aus so das der Alphakanal beibehalten wird?
|
Re: Bild direkt auf Desktop ausgeben
Zitat:
|
Re: Bild direkt auf Desktop ausgeben
Welches TPNGImage verwendest du? Also woher hast du es? Dann könnte man wenigstens selbst mal schauen was es da so für methoden gibt wenn man weiß welches du verwendest.
|
Re: Bild direkt auf Desktop ausgeben
|
Re: Bild direkt auf Desktop ausgeben
so sollte es funktionieren:
Delphi-Quellcode:
LImage ist bei mir ein TPNGObject welches von TGraphic abgeleitet ist. Es sollte also mit allen Object funktionieren die von TGraphic abgeleitet sind (also auch TBitmap, TJPEGImage etc.)
LDC: TCanvas;
begin LDC := TCanvas.Create; LDC.Handle := GetDC(0); LDC.Draw(0, 0, LImage); ReleaseDC(0, LDC.Handle); LDC.Handle := 0; LDC.Free; |
Re: Bild direkt auf Desktop ausgeben
Danke, das funktioniert wunderbar :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz