Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 03, 2025 22:09

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Frage zu Texturen Graustufen, RGB
BeitragVerfasst: Fr Okt 18, 2002 11:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
hi,

wie drehe ich denn nur die Graustufen einer Textur um, jedoch nicht alle RGB-Farben?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 18, 2002 12:01 
Offline
DGL Member

Registriert: Do Mai 30, 2002 18:48
Beiträge: 1617
hast du jetzt ein buntes bild oder eines, dass nur aus graustufen besteht?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 18, 2002 12:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
ein buntes


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 18, 2002 12:23 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Das ist eigentlich ganz einfach : Ein Pixel besteht ja aus drei Werten (in OGL eigentlich aus 4, aber der Alphawert spielt für die nachfolgende Betrachtung keine Rolle) : Rot, Grün und Blau.

Bei einer FARBE unterscheiden sich mindestens zwei Werte voneinander wie z.B. Gelb : R=255/G=255/B=0

Bei GRAUSTUFEN sind alle Werte gleich z.B. R=10/G=10/B=10. Weicht einer dieser Werte um knapp 10 ab, so wird aus der Graustufe eine Farbe.
Also solltest du da eine kleine Toleranz einbauen!

Progg dir also einfach ne Routine, die durch alle Pixel eines Bildes geht und die RGB-Werte prüft...hier mal ein Beispiel als Pseudocode :

Code:
  1.  
  2.  
  3. for x := 0 to Pic.Width-1 do
  4.  
  5.   for y := 0 to Pic.Height-1 do
  6.  
  7.   begin
  8.  
  9.   RGB := GetRGB(Pic.Canvas.Pixels[x,y]);
  10.  
  11.   if (R=G) and (R=B) and (G=B) then
  12.  
  13.    InvertPixel(Pic.Canvas.Pixels[x,y]);
  14.  
  15.   end;
  16.  
  17.  


Ich hoffe du verstehst was ich damit meine...da fehlt jetzt natürlich noch die von mir oben angesprochene Toleranz, dafür müsste dann eine eigene Funktion her, genauso wie ne Funktion zum Invertieren eines Pixels...das dürfte aber ja wohl kein Problem sein!

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Okt 18, 2002 13:11 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
aaa haaaa :wink:
noch eine Frage: wieso bietet mir das kein Bildbearbeitungsprogramm an? So ein...


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.012s | 16 Queries | GZIP : On ]