![]() |
Farbe eines TBitmap schnell durch eine andere ersetzen
Hallo,
Ich habe ein TBitmap das 200*200 Pixel groß ist. Ich habe es Grafik gennant (grafik: TBitmap;) durch den folgenden code wird eine bestemmte farbe (farbe_alt) durch eine neue ersetzt. Leider dauert das ewig. kennt ihr eine schnellere Methode?
Delphi-Quellcode:
for i:=0 to Grafik.width do
for i2:=0 to Grafik.height do if Grafik.Canvas.Pixels[i,i2]=alt_farbe then Grafik.Canvas.Pixels[i,i2]:=colordialog.color; |
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Wenn das Bild palettenorientiert ist <=256 Farben, reicht es die Farbe in der Palette zu ändern.
|
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Anonsten kannst du
![]() |
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Hallo,
es sind weniger als 256 Farben, wie verwende ich eine Palette ?? ich habe mir gerade ScanLine angeschaut, wie soll mir das in meinen fall weiterhelfen? Ferby |
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Du verwendest sie schon ;-)
Bilder < 256 Farben arbeiten mit einer sogeannaten Farbpalette. D.h. es wird im Bildpunkt nicht die Frabe angegeben, sondern nur der Index der Farbpalette. In der Farbpalette wird nun der wirkliche Farbwert angegeben. (> 8Bit, bei Std-VGA 18 Bit). ein Bitmap hat die Eigenschaft Property Palette vom Typ HPALETTE. |
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Hallo,
und wie kann ich jetzt damit mein Problemm beseitigen? Wie ändere ich eine Farbe in der Farbpallete?? kannst du mir ein wenig beispielcode geben? Ferby |
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Ich hoffe das funktioniert so
Delphi-Quellcode:
img ist vom Typ TBitmap.
//Palette sichern
GetPaletteEntries(img.Palette, 0, 256, Colors[0]); //Palette manipulieren Colors[10] := rgb( 10,20,60); //Palette des Bildes auf geänderte Palette setzen SetPaletteEntries(img.Palette, 0, 256, Colors[0]); Annahme 8Bit-Bild |
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Hallo,
leider passiert nichts wenn der quellcode ausgeführt wird. es kommt keine fehlermeldung aber es ändert sich auch nichts an dem TBitmap?? Brauche Hilfe :-( |
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Vielleicht existiert kein Pixel mit Index 10. Ändere mal andere Indices.
|
Re: Farbe eines TBitmap schnell durch eine andere ersetzen
Hallo,
??? Was ist bei dir überhaupt Colors? Welcher Variabel Typ, für was wird es verwendet? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 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