AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Transparente Farbe aus ImageList holen.
Thema durchsuchen
Ansicht
Themen-Optionen

Transparente Farbe aus ImageList holen.

Ein Thema von Popov · begonnen am 28. Mär 2015 · letzter Beitrag vom 29. Mär 2015
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

Transparente Farbe aus ImageList holen.

  Alt 28. Mär 2015, 23:06
Ich nutze TImageList für kleine Bitmaps, diese werden auf andere Grafik gezeichnet. Dazu hole ich die Bitmap zuerst aus der ImageList mit GetBitmap. Soweit alles ok.

Nur sind einige der Bitmaps in der ImageList transparent. Mit GetBitmap wird die Transparenz beim holen auch eingehalten, aber nun will ich das Ergebnis auf die große Grafik zeichnen. Doch nun bekomme ich Probleme mit der Transparenz.

Natürlich kann ich z. B. clFuchsia als Grundlage nehmen und diese nun meinerseits als Transparentfarbe zum zeichnen nutzen. Nur kann ich aber nicht sicher sein, dass clFuchsia nicht eine wichtige Farbe in der Bitmap spielt.

Die original Transparenzfarbe kann ich meiner Kenntnis nach nicht aus ImageList holen. clNone ich keine Farbe, nur eine Einstellung, dass transparent gezeichnet werden soll.

Wie kann ich nun eine transparente Bitmap aus ImageList holen und meinerseits transparent zeichnen?

Ich hab zwar eine Lösung, die ist aber etwas Overkill. Hier übertrage ich zuerst den Hintergrund von der Stelle wo die Bitmap später hin soll. Funktioniert zwar, ich suche aber etwas einfaches.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Transparente Farbe aus ImageList holen.

  Alt 28. Mär 2015, 23:46
Ich vermute mal du suchst nach Delphi-Referenz durchsuchenTImageList.Draw
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Transparente Farbe aus ImageList holen.

  Alt 29. Mär 2015, 00:01
Danke dir. Genau was ich gesucht habe. Hab die Hilfe zwar überflogen, aber anscheinend Draw übersehen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Transparente Farbe aus ImageList holen.

  Alt 29. Mär 2015, 00:57
Die TImageList speichert beim Import nicht die Farbe, sondern die resultierende Maske.
ImageList1.GetMaskBitmap ist dann ein Schwarz/Weiß-Bild mit den transparenten Pixeln,
also quasi der abgetrennte Alphakanal mit 0% oder 100%.
$2B or not $2B
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#5

AW: Transparente Farbe aus ImageList holen.

  Alt 29. Mär 2015, 01:32
Das war schon klar, deshalb auch die Frage. Sonst hätte man die Transparenzfarbe nehmen könne. Natürlich kann man mit der Bitmap und der Maske mit leichtem Aufwand transparent zeichnen, aber... usw.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Transparente Farbe aus ImageList holen.

  Alt 29. Mär 2015, 04:39
Wie gesagt, es gibt keine Transparenzfarbe mehr.

Nur der Importer kennt kurzzeitig die Farbe und generiert daraus die Maske.
Man kann aber auch direkt die Maske zu einem Bild hinzufügen (allerdings nicht im Designer-Editor, denn der ist zu doof dafür)

Draw macht auch nichts anderes als Maske und Bild zu nehmen und malt dann nur die Pixel des Bildes, welche in der Maske freigegeben sind.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Transparente Farbe aus ImageList holen.

  Alt 29. Mär 2015, 08:38
Muss es denn unbedingt Bmp sein? Mit den PNGComponents könntest du PNGs nehmen und hättest nicht nur den einfachen Fall von einer Transparentsfarbe sondern jedes Pixel kann ein x% Transparents beinhalten.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#8

AW: Transparente Farbe aus ImageList holen.

  Alt 29. Mär 2015, 12:29
Vielen Dank Leute, aber in Post #2 wurde bereits die Lösung genannt. Keine Ahnung wieso ich Draw übersehen habe? Vielleicht weil ich ImageList inzwischen zig Jahre nutze und die ganze Zeit nur GetBitmap gebraucht haben, somit nichts neues von der Komponente erwartet habe, oder meine Brille inzwischen zu schwach ist, so dass ich gelegentlich einige Methoden oder Eigenschaften übersehe, aber Draw ist das was ich gesucht habe. Und das ImageList Masken mitliefert, das habe ich sogar schon früher gewusst
  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:59 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