Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Auf ein Image ein transparentes Image an bestimmter Stelle ablegen (https://www.delphipraxis.net/171783-auf-ein-image-ein-transparentes-image-bestimmter-stelle-ablegen.html)

blondervolker 25. Nov 2012 11:24

Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich probiere seit gestern(:-D)krampfhaft,auf ein Image ein transparentes Image an einer bestimmten Stelle abzulegen.Aber es gelingt mir leider nicht.
Hab es mit Drag&Drop versucht,aber dann ist mein Image wieder weg.
Ich seh nur den dusseligen Pfeil,den ich in das Image reingezogen habe.:oops:

Hab mal ein Bild mit drangehangen...

blondervolker 26. Nov 2012 18:51

AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
 
Hab es immer noch nicht geschnallt...:oops:

Sir Rufo 26. Nov 2012 20:49

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

Zitat von blondervolker (Beitrag 1193086)
Hab es immer noch nicht geschnallt...:oops:

Tröste dich, wir haben noch nicht mal verstanden, was du eigentlich willst

Sir Rufo 26. Nov 2012 21:02

AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
 
Und was niemand hier jemals verstehen wird, warum du deine Beiträge immer noch als Vorschlag für die Codelib postest :wall:

Aber wir trösten uns, du weißt es wohl auch nicht :roll:

stahli 26. Nov 2012 21:13

AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
 
Ich habe auch nicht verstanden, was Du wohin ziehst.
Kannst Du ein kurzes Video posten?

blondervolker 27. Nov 2012 12:39

AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

mein Beitrag sollte nicht in die Codelib...:oops:

Hab mal das Miniprojekt drangehangen.

Ich wollte diesen Pfeil(e) als "Markierung" auf dem geladen Bild ablegen.
Dieses markierte Bild wollte ich dann speichern.
Danach ist mein Bild weg,aber der dusseliche Pfeil ist dann im Image.

Hab leider keien Plan...Das ist mein 1.Versuch.Mit Bildbearbeitung hab
ich mich noch nie versucht...:oops:

Sir Rufo 27. Nov 2012 12:48

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

Zitat von blondervolker (Beitrag 1193210)
mein Beitrag sollte nicht in die Codelib...:oops:

Nee, is klar ... einmal ist keinmal, jedoch ...

ab Mai 2012 war eigentlich alles (wieder) gut, aber
15.11.2012 http://www.delphipraxis.net/171613-m...-das-bild.html
21.11.2012 http://www.delphipraxis.net/171713-f...angezeigt.html
22.11.2012 da hat es funktioniert

:roll:

nuclearping 27. Nov 2012 13:03

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

Zitat von blondervolker (Beitrag 1193210)
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. :stupid:

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? :stupid:

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

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.

blondervolker 27. Nov 2012 17:11

AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
 
Liste der Anhänge anzeigen (Anzahl: 1)
ja den Code habe ich mittlerweile formatiert.:oops:

Hab es anders gemacht und erfüllt den gleichen Zweck.
Delphi-Quellcode:
procedure TForm21.ImageMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Bitmap : TBitmap;
begin
  Bitmap := TBitmap.Create;
  try
    ImageList1.GetBitmap(0, Bitmap);
    Image.Canvas.Draw(X,Y,Bitmap);
    finally
    FreeAndNil(Bitmap);
  end;
end;
Wie aber bekommt man ein Transparenten Pfeil hin?
Hab in der Imagelist gebastelt,aber es geht nicht?
Siehe Abbildung...

DeddyH 27. Nov 2012 17:38

AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
 
http://www.delphiforfun.org/programs...askdrawing.htm
Oder aber TBitmap32 und damit echte Transparenz verwenden oder auf ein anderes Bildformat ausweichen, das Transparenz unterstützt wie z.B. PNG.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr.
Seite 1 von 2  1 2      

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