Delphi-PRAXiS
Seite 5 von 6   « Erste     345 6      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bitmap32 auf ZielBitmap32 malen (https://www.delphipraxis.net/117988-bitmap32-auf-zielbitmap32-malen.html)

DeddyH 31. Jul 2008 15:32

Re: Bitmap32 auf ZielBitmap32 malen
 
Die Beispiele sind alles Delphi-Übersetzungen der Orginal-Microsoft-Beispiele. Zum Thema Transparenz z.B. dieses.

stOrM 31. Jul 2008 15:35

Re: Bitmap32 auf ZielBitmap32 malen
 
Zitat:

Zitat von DeddyH
Die Beispiele sind alles Delphi-Übersetzungen der Orginal-Microsoft-Beispiele. Zum Thema Transparenz z.B. dieses.

Ja ich kuck grad, dass problem fängt ja schon damit an das ich nicht weiss was ich alles brauche? Vorallem das RoundRect geht glaub ich nicht oder? Hab nix gefunden dazu bisher :-(

DeddyH 31. Jul 2008 15:41

Re: Bitmap32 auf ZielBitmap32 malen
 
Zur Not würde es wohl auch über eine Region gehen, denke ich.

stOrM 31. Jul 2008 15:44

Re: Bitmap32 auf ZielBitmap32 malen
 
Zitat:

Zitat von DeddyH
Zur Not würde es wohl auch über eine Region gehen, denke ich.

PM!

Medium 31. Jul 2008 22:14

Re: Bitmap32 auf ZielBitmap32 malen
 
Wenn ich eines nicht leiden mag, dann sind es mitten drin per PN weitergeführte Diskussionen. Ich kann mir gut vorstellen, dass das was ihr noch bequatscht durchaus von allgemeinem Interesse sein könnte.

Ich z.B. hab mich mit GDI+ auch noch nicht beschäftigt, und wäre interessiert an Details zu diesem und jenem.

stOrM 1. Aug 2008 06:56

Re: Bitmap32 auf ZielBitmap32 malen
 
Zitat:

Zitat von Medium
Wenn ich eines nicht leiden mag, dann sind es mitten drin per PN weitergeführte Diskussionen. Ich kann mir gut vorstellen, dass das was ihr noch bequatscht durchaus von allgemeinem Interesse sein könnte.

Ich z.B. hab mich mit GDI+ auch noch nicht beschäftigt, und wäre interessiert an Details zu diesem und jenem.

Nein, das sollte definitiv kein Ausschluß sein! Das war mehr privat, daher wollte ich nicht diesen Thread hier als Chat missbrauchen! GDI+ Weiß ich selber nicht ob das eine Alternative wäre, zu mal ich mich damit noch weniger auskenne, als wie mit Graphics32. Aber ich denke das dies eine alternative sein könnte, wenn ich mir die Ribbons von Devexpress ansehe, ist dort ja auch alles mit GDI+ gezeichnet?! Von daher hab ich nur mal laut nachgedacht.

Was mich immer noch interessieren würde betrifft dein letztes posting, meinst Du du könntest mal ein kleines Beispiel machen in meinem Projekt damit ich das auch mal verstehe, bzw. sehe wie Du dir das gedacht hast, ich muß das mal vor Augen haben um das zu verstehen.

Jedoch egal wie die Sache ausfällt, wenn ich eine Komponente entwickeln sollte aus diesem Thema stell ich sie eh der allgemeinheit zur Verfügung inkl. Source, da kann dann eh jeder sehen was ich wie gemacht hab, ob nun mit GDI+ oder ohne.

Viele Grüße
Marc

turboPASCAL 1. Aug 2008 09:42

Re: Bitmap32 auf ZielBitmap32 malen
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, ein wenig gebastelt.

... und bitte nicht so etwas, da wird mir ...

Code:
[b]procedure[/b] TForm1.[color=#ff005f]ListBox1DrawItem[/color](Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
[color=#00D000]//...[/color]
[b]begin[/b]
  SelectionLeft := TBitmap32.Create;
  SelectionMiddle := TBitmap32.Create;
  SelectionRight := TBitmap32.Create;

  [color=#ff0000]LoadPNGintoBitmap32(SelectionLeft, ExtractFilePath(ParamStr(0)) + 'leftw.png', Alpha);[/color] [color=#00D000]// <--<<[/color]
  [color=#00D000]//...[/color]
ich hoffe das war nur für das Demo.

stOrM 1. Aug 2008 09:48

Re: Bitmap32 auf ZielBitmap32 malen
 
Zitat:

Zitat von turboPASCAL
So, ein wenig gebastelt.

... und bitte nicht so etwas, da wird mir ...

Code:
[b]procedure[/b] TForm1.[color=#ff005f]ListBox1DrawItem[/color](Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
[color=#00D000]//...[/color]
[b]begin[/b]
  SelectionLeft := TBitmap32.Create;
  SelectionMiddle := TBitmap32.Create;
  SelectionRight := TBitmap32.Create;

  [color=#ff0000]LoadPNGintoBitmap32(SelectionLeft, ExtractFilePath(ParamStr(0)) + 'leftw.png', Alpha);[/color] [color=#00D000]// <--<<[/color]
  [color=#00D000]//...[/color]
ich hoffe das war nur für das Demo.

Du bist der absolute Hammer!
Ich schau mir das nochmal genau an, aber dass ist genau das was ich wollte!

Nein der Code war nur fürs Demo ist noch nix bereinigt.

Medium 1. Aug 2008 14:58

Re: Bitmap32 auf ZielBitmap32 malen
 
So wird es wohl noch die einfachste Methode sein, von Hand die Transparenz abzubilden. Aus der G32-Hilfe:
Zitat:

Zitat von G32-Hilfe zu TBitmap32.Draw()
The version with hSrc parameter, is introduced mainly for compatibility reasons. You may use it to transfer data from bitmaps with other formats, or any other windows objects that have device handle (DC). It is based on StretchDIBits GDI call, it does not support transparency and always uses nearest neighbor interpolation when stretching.

Ich habs grad getestet: Es hilft in der Tat nicht das OnPixelCombine-Event auszutauschen und im dmCustom Mode zu zeichnen. Wenn man also auf nicht einfarbige Hintergründe transparent auf einen GDI Canvas zeichen will, so müsste man sich zu Fuß erstmal den Bereich vom Zielcanvas in zweites Bitmap32 schaufeln, dort das andere drauf blenden, und das wieder zurück werfen... Ich mag GDI irgendwie immer weniger :)


Was ich mit den Pufferbitmaps meinte, hat TP ja schon prima umgesetzt, so dass ich denke ich dazu nichts mehr schreiben muss. Generell stellt die Lösung von TP für deinen Fall den besten und vor allem einfachsten Kompromiss dar.

Ich muss zudem noch eine früher gemachte Aussage korrigieren: Die Sache mit der Variable Alpha. Ich hab übersehen, dass dies ein Out-Parameter der PNG-Ladefunktion ist, wodurch es völlig okay ist ihn nicht zu initialisieren. Ich dachte es wäre ein Parameter mit dem man wählen kann ob man nun den Alphakanal mitnehmen will oder nicht. Wer lesen kann ist klar im Vorteil =)


PS: Nichts für ungut in Sachen PN. Da danach hier erstmal nichts mehr passierte, nahm ich an es ginge um dieses Thema :cheers:

stOrM 1. Aug 2008 15:01

Re: Bitmap32 auf ZielBitmap32 malen
 
Jepp TP, hat das genial gelöst, mein einziges Problem stellt grad nur die ItemHeight dar, die ja variable ist, nu weiss ich nicht wie ich die Bar nu auf Itemheight angleichen soll da mein Resampler ja nu wech is :-(


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 Uhr.
Seite 5 von 6   « Erste     345 6      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz