Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Bild auf Bild kopieren/übermalen & Transparenz (https://www.delphipraxis.net/168869-bild-auf-bild-kopieren-uebermalen-transparenz.html)

Bummi 15. Jun 2012 13:15

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Liste der Anhänge anzeigen (Anzahl: 3)
Ich habe mal schnell eine Minikomponeten gebastelt, Testprojekt liegt bei, keine Installation/Komponentenregistrierung nötig.
Wenn es für Dich passt kannst Du es ja anpassen und ein Package drumkleben.

himitsu 15. Jun 2012 15:34

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Zitat:

Zitat von Cyberaxx (Beitrag 1171032)
Das ist vom Typ TPMGImage

Dann isses schon etwas interessant, daß man ein PNG (soll ja eines dort drin sein) in ein Bitmap laden kann, welches doch eigentlich nur Bitmaps laden können sollte. :gruebel:

Oder meinstest du
Delphi-Quellcode:
JvImage1.Picture.LoadFromStream(MStream);

statt
Delphi-Quellcode:
JvImage1.Picture.Bitmap.LoadFromStream(MStream);
.

Aber OK, wer weiß was die JEDI-Leute da intern alles "verdreht" haben.

Cyberaxx 15. Jun 2012 15:36

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Ich schau mir das nachher in Ruhe mal an. Bin mir da gerade auch nicht mehr so sicher. :(
Muss jetzt erstmal richtung heimat fahren. Feierabend :)

Cyberaxx 15. Jun 2012 20:53

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Delphi-Quellcode:
JvImage1.Picture.LoadFromStream(MStream);
Gibt es nicht. Es bleibt nur Bitmap übrig...

Um den Ausgangszustand anzuzeigen reichte jetzt
Delphi-Quellcode:
JvImage1.Picture.Assign(ButtonImage);
Nachteil ist, meine erste Methode zum Anzeigen es Icons funktioniert nun nimma.


@Bummi: Das Projekt schaue ich mir gleich an. Der Screen ist ja schon einmal nach meinen Vorstellungen :)

Cyberaxx 15. Jun 2012 22:07

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Wow die Komponente ist wirklich nicht schlecht.
Daraus kann ich sicher etwas basteln.

Dennoch und ich hoffe Du nimmst mir das nicht allzu übel, würde ich gerne wissen was ich an meinem Projekt so falsch mache...

Delphi-Quellcode:
  try
    aImage := TPngImage.Create;
    aImage.Assign(ButtonImage);
    //aImage.Width := 110;
    //aImage.Height := 94;
    X := Trunc(JvImage1.Picture.Width - IconImage.Width);
    aImage.Canvas.Draw(X,0, IconImage);
    JvImage1.Picture.Assign(aImage);
  finally
    aImage.Free;
  end;
Da wird der bereich abgeschnitten der Transparent ist vom Original Bild. Der Transparente bereich scheint keine Zeichenfläche mehr zu sein?
Versuch ich mal das PNGImage nach Bitmap und dann per Stream aufs JvImage zu setzen.

Thom 15. Jun 2012 22:55

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Zitat:

Zitat von Cyberaxx (Beitrag 1171100)
Versuch ich mal das PNGImage nach Bitmap und dann per Stream aufs JvImage zu setzen.

Achtung: Das Delphi-Objekt TPNGImage enthält einen Fehler, der bei
Delphi-Quellcode:
TBitmap.Assign(TPNGImage)
dazu führt, daß halbtransparente Bereiche abgedunkelt werden.

Bummi 15. Jun 2012 22:59

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Das dürfte an der Implementierung von Draw (DrawPartialTrans) in TPNGImage liegen.
Ich grabe schon eine ganze Weile in meinen Snipplets rum, finde aber bezüglich des "mischens" zweier "Bitmaps" mit Alphakanal nicht die richtigen Dateien.
TPNGImage verwendet intern Bitmaps mit Alphakanalinformationen, daher gibt es überhaupt eine Property Canvas. Eine schnelle Lösung auf Deiner Basis scheine ich nicht zu finden, sorry.

Cyberaxx 15. Jun 2012 23:14

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Ja Mit einem Bitmap alleine klappts nicht, habe ich eben bemerkt.
Das ich von einem TPNGImage die grösse nicht ändern kann nervt mich auch. Alles was transparent ist, kann nicht übermalt werden.

Da ich hier mal weiter kommen will werde ich erst einmal Q&D das Icon mittig setzen, dann klappts ja.

Wenn ich dann Ruhe habe schaue ich mir dein Testprojekt bzw. die Komponente genauer an. Danach werde ich dies darauf anpassen.
War eine dumme Idee sowas anzubieten, hatte es mir einfacher vorgestellt ;)

Bummi 15. Jun 2012 23:19

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
In der Komponente steckt bis jetzt eine halbe Stunde Arbeit, noch mal soviel und Du hast IMHO die Faust aufs Auge Lösung. (Caption, Rahmen in dsDesigning,gegf. statt der Imagelisten direkt TPictures, gegf. die "Zahlen" selbst zeichnen, gegf. Zoom und Rotation einbauen, etc.)

Cyberaxx 16. Jun 2012 00:00

AW: Bild auf Bild kopieren/übermalen & Transparenz
 
Ja das sagst Du, Du hast scheinbar da auch Ahnung von. Ich hätte so etwas in einer halben Stunde nicht hinbekommen, nicht einmal Ansatzweise.
Bin ja schon froh wenn ich eine Komponente um ein Element erweitern kann.
Eine ganz eigenständige kann ich wohl auch aber davon nun hab ich echt keine Ahnung.

Wäre sicher sonst schon auf die Idee gekommen mir etwas eigenes zu bauen, was genau meinen Vorstellungen entspricht.
Die JvImage musste ich auch erstmal abändern. Da gab es ein Problem mit dem Status und dem entsprechenden Draw. Das hab ich auch noch so eben hinbekommen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:59 Uhr.
Seite 2 von 2     12   

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