Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Image-> Wieviele Farben gibt es (https://www.delphipraxis.net/98959-image-wieviele-farben-gibt-es.html)

rethan 4. Sep 2007 16:17


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

Flips 4. Sep 2007 18:29

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:

inherited 4. Sep 2007 18:36

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))

scrat1979 4. Sep 2007 18:40

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: Bitmap in Grauwerte umwandeln

inherited 4. Sep 2007 18:54

Re: Image-> Wieviele Farben gibt es
 
Sicher dass er das meint?

Muetze1 4. Sep 2007 19:20

Re: Image-> Wieviele Farben gibt es
 
Zitat:

Zitat von inherited
Die eigenschaft PixelFormat des Images legt fest, wieviele Bit pro Pixel verwendet werden.

Diese Eigenschaft hat ein TBitmap, aber kein anderer TGraphic-Typ.

Zitat:

Zitat von inherited
Viel Spaß beim rechnen für die anderen werte (16, 8, 32..., mehr dazu in der Delphi-Hilfe(F1))

Und das er bei 32 Bpp nicht rechnen braucht, hättest du auch noch erwähnen können. Nach deiner Erklärung würde er auf ein falsches Ergebnis kommen.

@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...

scrat1979 4. Sep 2007 21:12

Re: Image-> Wieviele Farben gibt es
 
Zitat:

Zitat von inherited
Sicher dass er das meint?

Keine Ahnung, aber das wäre doch mal ein nettes Ergebnis :-)

SCRaT

inherited 4. Sep 2007 21:15

Re: Image-> Wieviele Farben gibt es
 
Zitat:

Zitat von Muetze1
Und das er bei 32 Bpp nicht rechnen braucht, hättest du auch noch erwähnen können. Nach deiner Erklärung würde er auf ein falsches Ergebnis kommen.

Deswegen der Querverweis zur Delphip-Hilfe, ich meinte mich zu erinnern dass das da irgendwo erklärt war :gruebel:
ich brauchte das ganze Gedöns für einen VNC-Server und weiß dass nicht immer alle Bits benutzt werden.

negaH 4. Sep 2007 22:55

Re: Image-> Wieviele Farben gibt es
 
Zitat:

und welches Farbmodell verwendet wird
das ist RGB in fast allen Fällen und hängt von der Grafikkarte ab.

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

rethan 5. Sep 2007 18:25

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 .


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.
Seite 1 von 2  1 2      

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