![]() |
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... |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Hab es immer noch nicht geschnallt...:oops:
|
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Zitat:
|
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: |
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? |
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: |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Zitat:
ab Mai 2012 war eigentlich alles (wieder) gut, aber 15.11.2012 ![]() 21.11.2012 ![]() 22.11.2012 da hat es funktioniert :roll: |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Zitat:
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:
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:
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; 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:
Um Transparenz musst du dich hier ggf. selbst noch kümmern und statt dem .Canvas.Draw vlt. mit BitBlt oder ähnlichem arbeiten.
Bitmap3.Canvas.Draw(0, 0, Bitmap1);
Bitmap3.Canvas.Draw(0, 0, Bitmap2); Image.Picture.Assign(Bitmap3); |
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:
Wie aber bekommt man ein Transparenten Pfeil hin?
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; Hab in der Imagelist gebastelt,aber es geht nicht? Siehe Abbildung... |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
![]() Oder aber TBitmap32 und damit echte Transparenz verwenden oder auf ein anderes Bildformat ausweichen, das Transparenz unterstützt wie z.B. PNG. |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Nur mal so als Idee:
Man kann ja für die Pfeile eigene Image-Instanzen erzeugen und über ein vorhandenes Image legen. Dann ließen die sich auch nachträglich noch verschieben. VIELLEICHT lässt sich zum Schluss über das Ganze dann eine GraphicBox legen und der Inhalt in ein Bild kopieren. Ich bin nicht sicher, aber versuchen könnte man es. Alternativ kann man (etwas mühsamer) die Bilddaten in ein Bitmap kopieren und bei den Pfeilen die transparenten Bitmaps aus lassen. So würde man zumindest nicht hart ein Originalbild ändern. |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Ich versuch es mal.Mal sehen ob es klappt.
Ersteinmal Danke für die Vorschläge.:thumb: |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Zitat:
Zitat:
Delphi-Quellcode:
// Initialisierung, im (Form)Create zB
BitmapLandkarte := TBitmap.Create; BitmapPfeil := TBitmap.Create; BitmapPuffer := TBitmap.Create; try BitmapLandkarte.LoadFromFile(...); BitmapPfeil.LoadFromFile(...); except // Fehler end; // Bild zusammensetzen BitmapPuffer.Assign(BitmapLandkarte); TransparentBlt(BitmapPuffer.Handle, PfeilX, PfeilY, PfeilBreite, PfeilHöhe, BitmapPfeil.Handle, 0, 0, PfeilBreite, PfeilHöhe, RGB($FF, $FF, $FF)); // RGB FF FF FF = Weiss Image.Assign(BitmapPuffer); // Am Ende freigeben (im Destroy) FreeAndNil(BitmapLandkarte); FreeAndNil(BitmapPfeil); FreeAndNil(BitmapPuffer); |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Normalerweise sollte das schon reichen:
Delphi-Quellcode:
Das er sich damit das Orginalbild versaut ist eine ganz andere Frage...
begin
ImageList1.Draw(Image.Canvas, X, Y, 0); end; |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Hallo,
das funktioniert auch nicht.Das sieht immer noch so aus wie vorher.:? |
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Hast Du es auch schon mit der Maske versucht? Das sieht zwar je nach Form nicht allzu hübsch aus, sollte aber im Wesentlichen funktionieren.
|
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Hab ich kein plan wie das geht...:oops:
|
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Das wird doch auf der von mir verlinkten Seite genau erklärt, ganz unten gibt es sogar ein Demoprojekt zum Download *koppschüttel*
|
AW: Auf ein Image ein transparentes Image an bestimmter Stelle ablegen
Das guck ich mir gerade an.:-D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 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