AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi 3 bilder übereinander malen
Thema durchsuchen
Ansicht
Themen-Optionen

3 bilder übereinander malen

Offene Frage von "dajuhsa"
Ein Thema von dajuhsa · begonnen am 9. Okt 2007 · letzter Beitrag vom 12. Okt 2007
Antwort Antwort
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#1

3 bilder übereinander malen

  Alt 9. Okt 2007, 22:01
tach,
ich hätt gern, dass ein TBitmap gezeichnet wird(CopyRect), darüber noch eins und noch eins(CopyRect).
Aber es wird nur das oberste gezeigt, wie mach ich denn, dass die obersten zwei transparent gezeichnet werden und ich von jedem ein stück sehen kann, also mehrere Ebenen übereinander?
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

Re: 3 bilder übereinander malen

  Alt 9. Okt 2007, 22:03
TransparentBlt(...) wäre ne Lösung.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: 3 bilder übereinander malen

  Alt 9. Okt 2007, 22:07
und wo is des?

Edit: Okay habs jetz gefunden aber ich kapiers nicht
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

Re: 3 bilder übereinander malen

  Alt 9. Okt 2007, 22:11
Also entweder du gehst die Bilder Pixel für Pixel durch und rechnest den Transparenzwert aus, was sehr langsam sein dürfte, oder du nutzt die Graphics32-Library. TransparentBlt würde ich nicht empfehlen, da diese funktion imho ein Speicherleck hat.
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

Re: 3 bilder übereinander malen

  Alt 9. Okt 2007, 22:12
guck mal in die Delphi-Hilfe, das gehört zur Gruppe der ganzen ..Blt-Befehle (BitBlt, StretchBlt etc.)
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Benutzerbild von dajuhsa
dajuhsa

Registriert seit: 20. Apr 2007
397 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: 3 bilder übereinander malen

  Alt 9. Okt 2007, 22:59
funktioniert nicht ganz so wie ich will ich erneuere die drei bilder nämlich 10 mal in der Sekunde und es bleibt immer beim erstem frame hängen, außer ich erneure es mit Fillrect oder dann ist es ja nicht transparent
bitte hilfe
das Essen ist wie das Internet - Downstream ist immer angenehmer als Upstream
-
Warum missbraucht die ganze Programmierwelt Images als Paintboxen
  Mit Zitat antworten Zitat
Jackie1983

Registriert seit: 12. Mär 2007
486 Beiträge
 
#7

Re: 3 bilder übereinander malen

  Alt 12. Okt 2007, 01:30
ich würde es so machen

Delphi-Quellcode:
var
  Ausgabe, //auf ausgabe wird alles gezeichnet und später auf ein canvas gezeichnet
  bild1,bild2,bild3 : TBitmap; //in form create erstellen und bilder laden
...


Procedure Draw;
var
  i : integer;
begin
  bild1.transparentcolor := clwhite;
  bild1.transparent := true;
//das gleiche mit bild 2 und3
  Ausgabe.draw(0,0,bild1);
  Ausgabe.draw(0,0,bild2);
  Ausgabe.draw(0,0,bild3);

  PaintBox.canvas.draw(0,0,Ausgabe);
end;
irgend wie so, müste funktionieren. Alle weißen felder vom Bitmap sind dann transparent.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: 3 bilder übereinander malen

  Alt 12. Okt 2007, 07:55
Zitat:
funktioniert nicht ganz so wie ich will ich erneuere die drei bilder nämlich 10 mal in der Sekunde
In diesem Fall sind wohl die Grafikfunktionen des Canvas eh zu langsam. Ich würde hier nach alternativen ausschau halten (z.B. DX, OpenGL, GDI+, ...)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Lossy eX
Lossy eX

Registriert seit: 7. Aug 2007
113 Beiträge
 
#9

Re: 3 bilder übereinander malen

  Alt 12. Okt 2007, 08:56
Zitat von mkinzler:
Zitat:
funktioniert nicht ganz so wie ich will ich erneuere die drei bilder nämlich 10 mal in der Sekunde
In diesem Fall sind wohl die Grafikfunktionen des Canvas eh zu langsam. Ich würde hier nach alternativen ausschau halten (z.B. DX, OpenGL, GDI+, ...)
Das würde ich so nicht unterschreiben! Selbst die olle GDI ist mitunter Hardwarebeschleunigt und wenn man sich an gewisse Dinge hält ist so etwas kein Problem. Klar OpenGL, DX sind in jedem Fall schneller. Allerdings sind das auch ganz neue andere APIs. Wenn es nur etwas simples ist dann macht es in meinen Augen absolut keinen Sinn, wenn man sich erst einmal Monate in ein komplett anderes System einarbeiten muss!

@dajuhsa: Mich würde auch mal interessieren was du genau vor hast? Willst du nur Masking betreiben oder soll es richtige Transparenz enthalten? Bzw. wäre es schon hilfreich, wenn du mal etwas code zeigst. Denn aus
Zitat von dajuhsa:
funktioniert nicht ganz so wie ich will ich erneuere die drei bilder nämlich 10 mal in der Sekunde und es bleibt immer beim erstem frame hängen, ...
kann sicherlich keiner der Anwesenden auch nur Ansatzweise erkennen was genau da schief geht.
Ich habe ja keine Vorurteile gegenüber Autofahrern ... aber Fahrer von BMW und Mercedes bestätigen diese regelmäßig.
Außerdem neue technologische Errungenschaften: Serienmäßig eingebaute Rechtsfahrsperre und der stromsparende Blinker.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 Uhr.
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