![]() |
Image-> Wieviele Farben gibt es
Servus Delphianer,
mein Informatik Professor hat in seiner Aufgabensammlung die Frage gestellt, wieviele Farben es in der Image-Komponente gibt :warn: und welches Farbmodell verwendet wird :coder: , dass tolle daran ist, dass wir die Graphischen Basisroutinen, wie er es nennt, noch gar nicht behandelt haben :wiejetzt: . Ich hoffe ihr könnt mir, nach meiner erfolglosen Suche durch das WeltWeiteNetz weiterhelfen... Danke im Vorraus |
Re: Image-> Wieviele Farben gibt es
Hi, welcome @ :dp:
Willst du ein Bild in ein TImage laden und dann die Anzahl der verschiedenen Farben in diesem Bild auslesen oder willst du allgemein wissen wieviel Farben ein TImage darstellen kann? :gruebel: |
Re: Image-> Wieviele Farben gibt es
Die eigenschaft PixelFormat des Images legt fest, wieviele Bit pro Pixel verwendet werden.
Es sind normalerweise 24 Bit. Da jeweils der Rot, Blau und Grün-Anteil gespeichert wird, hast du für jede farbe 24 / 3 Pixel, also 8, also ein Byte und mit 24 Bit kannst du 2^24 verschiedene Zustände erreichen. Soviele verschiedene Farben gibt es. Viel Spaß beim rechnen für die anderen werte (16, 8, 32..., mehr dazu in der Delphi-Hilfe(F1)) |
Re: Image-> Wieviele Farben gibt es
Hallo!!!
Also Du könntest Pixel für Pixel die Farbe prüfen und diese in ein Array oder eine sonstige Liste speichern. Einfach in der Schleife prüfen, ob die Farbe von Pixel xy in der Liste (IndexOf...) vorhanden ist. Falls nein, dann hinzufügen. Zum schluß die Anzahl der Elemente auslesen und fertig! Wie Du auf die Farbe der Pixels zugreifen kannst, ist hier im Forum im Rahmen anderer TImage-Fragen (z.B. in Grauwerte umwandeln, Negativ erzeugen...) schon sehr oft behandelt worden. Hoffe Dir einen Denkanstoß gegenben zu haben... SCRaT //EDIT: Auf die schnelle gefunden: ![]() |
Re: Image-> Wieviele Farben gibt es
Sicher dass er das meint?
|
Re: Image-> Wieviele Farben gibt es
Zitat:
Zitat:
@rethan: bei 32 Bpp wird ein Byte nicht für die Farbkodierung genutzt sondern es ist ungenutzt oder es enthält Transparenzinformationen (RGBA). Wozu gibt es 32 Bit wenn ein Byte ungenutzt ist? Ganz einfach: auf gerade Adressen (die glatt durch die Busbreite teilbar sind) kann der Prozessor schneller zugreifen. Bei ungeraden Adressen muss er eine "extra" Runde beim Buszugriff drehen. Und da eine gerade Adresse + Busbreite (hier: 32 Bit) wieder eine gerade Adresse ergibt, kann man sich den Sinn ausmalen... |
Re: Image-> Wieviele Farben gibt es
Zitat:
SCRaT |
Re: Image-> Wieviele Farben gibt es
Zitat:
ich brauchte das ganze Gedöns für einen VNC-Server und weiß dass nicht immer alle Bits benutzt werden. |
Re: Image-> Wieviele Farben gibt es
Zitat:
Die TImage Komponnete benutzt immer das eingestellte Farbformat der Grafikkarte. Also auch wenn man in der TImage Komponente zb. eine monochrome 2 farben Bitmap verwendet so wird das durch das GDI des Betriebsystemes hin zum Grafikkartentreiber bis zum Monitor immer im durch das System eingestellten Farbformat dargestellt. Wenn du also 24Bit Farbmodus für den Bildschirm eingestellt hast dann sind es 24Bit Farbtiefe und nicht nur 1 Bit wie bei der monochromen Bitmap im TImage. Gruß Hagen |
Re: Image-> Wieviele Farben gibt es
Ich danke euch allen für die Mühe, die ihr euch gemacht habt...
wahrscheinlich hab ich mich zu kompliziert ausgedrückt :wiejetzt: . Es ging darum ob das TImage 16 oder 32 Bit nutzt und das mit dem Farbmodell hat sich zum Glück auch geklärt :-D . |
Re: Image-> Wieviele Farben gibt es
Um noch einmal das von Muetze aufzugreifen:
Bei 16 Bit werden lediglich 15 davon benutzt, 1 Bit pro Pixel fällt flach. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 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