AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Thema durchsuchen
Ansicht
Themen-Optionen

Auf ein Image ein transparentes Image an bestimmter Stelle ablegen

Ein Thema von blondervolker · begonnen am 25. Nov 2012 · letzter Beitrag vom 28. Nov 2012
 
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen

  Alt 27. Nov 2012, 13:03
Hab mal das Miniprojekt drangehangen.
1) Das ist kein Miniprojekt sondern nur eine .pas-Datei, wo man sich das Projekt dazu noch erstellen soll.
2) Das hab ich nicht gemacht, mir aber trotzdem mal die .pas angeschaut. Und mich als erstes mal wieder gefragt: Warum machen die nie 'ne ordentliche Einrückung? Alles an den Rand geklatscht.

3) Zum Code:
Delphi-Quellcode:
procedure TForm21.ffnen1Click(Sender: TObject);
begin
opendialog1.Execute;
Image.Picture.LoadFromFile(opendialog1.FileName);
label1.Caption:= InttoStr(Image.Width);
label2.Caption:= InttoStr(Image.Height);
end;

procedure TForm21.FormCreate(Sender: TObject);
VAR Bitmap : TBitmap;
begin
   Bitmap := TBitmap.Create;
   Bitmap.Width := Image.Width;
   Bitmap.Height := Image.Height;
   Image.Picture.Graphic := Bitmap;

   end;
In FormCreate erzeugst du ein TBitmap, weisst es dann Image.Picture.Graphic zu. Und dann in "Öffnen1Click" lädst du ein Bild aus einer Datei und weisst es Image.Picture zu. Also nicht nur, dass du in FormCreate ein Speicherleck erzeugst (TBitmap wird nirgends freigegeben), die ganze Aktion selbst ist auch sinnlos, da du ein leeres Bitmap zuweist, was aber ohnehin irrelevant ist, da es bei Öffnen1Click sowieso wieder überschrieben wird. Oder sehe ich das falsch?

4) Ich habe auch nicht so wirklich verstanden, was du vorhast. Aber mein Vorschlag aus der Kristallkugel ...

Das, was du da machst, klappt so nicht. Ein TImage ist kein Container für mehrere Images, sondern kann immer nur ein einziges TBitmap darstellen. Das was du machen musst, ist dein Zielbild mit dem Quellbild in einer extra Bitmap zu kombinieren und das dann erst im TImage darstellen. Also Bild1 + Bild2 = Bild3 oder als "Code":
Delphi-Quellcode:
Bitmap3.Canvas.Draw(0, 0, Bitmap1);
Bitmap3.Canvas.Draw(0, 0, Bitmap2);
Image.Picture.Assign(Bitmap3);
Um Transparenz musst du dich hier ggf. selbst noch kümmern und statt dem .Canvas.Draw vlt. mit BitBlt oder ähnlichem arbeiten.
  Mit Zitat antworten Zitat
 


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 14:53 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