AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

color integer wert von "grau"

Ein Thema von Nicodius · begonnen am 13. Nov 2004 · letzter Beitrag vom 24. Nov 2004
Antwort Antwort
Seite 1 von 2  1 2      
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#1

color integer wert von "grau"

  Alt 13. Nov 2004, 23:20
ich hätte gerne diesen color integer wert (von mycolor := 12213123 zB) für grau generell(so das man den wert hell - dunkel grau machen kann

.... aus was ergeben sich die werte überhaupt?


danke
Nico Müller
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#2

Re: color integer wert von "grau"

  Alt 13. Nov 2004, 23:34
das sind rgb werte. jeweils 1 byte für r g und b, um 16, 8 bzw 0 bit nach links verschoben (shl). bei grau ist r=b=g
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: color integer wert von "grau"

  Alt 13. Nov 2004, 23:34
Hi Nico,

sieh mal in der OH nach: Delphi-Referenz durchsuchenTColor. Dort steht:

Meine heißgeliebte OH schreibt:
If you specify TColor as a specific 4-byte hexadecimal number instead of using the constants defined in the Graphics unit, the low three bytes represent RGB color intensities for blue, green, and red, respectively. The value $00FF0000 represents full-intensity, pure blue, $0000FF00 is pure green, and $000000FF is pure red. $00000000 is black and $00FFFFFF is white.

If the highest-order byte is zero, the color obtained is the closest matching color in the system palette. If the highest-order byte is one ($01), the color obtained is the closest matching color in the currently realized palette. If the highest-order byte is two ($02), the value is matched with the nearest color in the logical palette of the current device context.

Bei Graustufen sind einfach die Bytes für Rot, Gelb und Blau genau gleich, somit ergeben sich die 256 verschiedenen Grautöne.
Beantwortet das deine Frage?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#4

Re: color integer wert von "grau"

  Alt 13. Nov 2004, 23:38
Hallo!
Die Farbwerte setzen sich aus Rot-, Grün- und Blauanteilen zusammen, die in einem 32 bit Farbwert jeweils durch ein Byte representiert werden.

Um Grauwerte zu bekommen müssen die drei Farbkomponenten jeweils den gleichen Wert haben (Folglich gibt es 256 verschiedene Grauwerte, inklusive Schwarz und Weiß).

Du kannst diue Funktion rgb() verwenden, der du jeweils ein byte für Rot, Grün und Blau übergibst.
Alternativ kannst du die Farbe direkt als Zahlwert schreiben, dazu bietet sich die Hexadezimale Schreibweise an, da man hier jedes byte direkt sieht. Achtung: das niederwertigste byte steht für Rot, dann kommt Grün, dann Blau, das höchstwertige byte bestimmt, wie die Farbe dargestellt wird (siehe OH). Ein Farbwert in hexadezimaler Schreibweise sieht also vom Aufbau zB. so aus: $00BBGGRR
(R=rot,G=grün, B=blau) (steht auch alles in der OH).
So wäre zB. $00808080 ein mittleres Grau, $00F0F0F0 ein helles, und $000A0A0A ein dunkleres.

Viele Grüße, Sebastian
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#5

Re: color integer wert von "grau"

  Alt 13. Nov 2004, 23:39
nicht ganz


nämlich ... wie wäre jetzt der code für "grau" ... so in btnface richtung

... und wie würde ich das nacher dunkler machen

255255255 ist es nicht


und der wert bei

mycolor := 1232;

muss ja nicht 8 zeichen lang sein
Nico Müller
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#6

Re: color integer wert von "grau"

  Alt 13. Nov 2004, 23:42
habs geschafft!!


danke vielmals!


habs per rbg() gemacht!
Nico Müller
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#7

Re: color integer wert von "grau"

  Alt 13. Nov 2004, 23:43
Zitat:
255255255 ist es nichtl
Ist es nicht, weil du eben so nicht die bytes direkt beschreibst. Schreibs in hexadezimaler Schreibweise: $00FFFFFF (entspricht vier bytes mit den Werten 0, 255, 255, 255, was einem reinen Weiß entspricht).
Dunkler wirds mit kleineren Werten der bytes, zB. $00505050

Viele Grüße,
Sebastian
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#8

Re: color integer wert von "grau"

  Alt 13. Nov 2004, 23:54
danke!
Nico Müller
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#9

Re: color integer wert von "grau"

  Alt 14. Nov 2004, 07:26
naja ... ich glaub ihr m,üsst mir trotzdem weiterhelfen

Delphi-Quellcode:
var
  Form1: TForm1;
  MyPoints : Array [1..150] of TPoint;
  Zahl : Integer = 1;
implementation

{$R *.dfm}

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var i : Integer;
begin
  Canvas.Brush.Color := clblack;
  Canvas.FillRect(Rect(0,0,Form1.Width,Form1.Height));
  Canvas.Pixels[X,Y] := 1111111;
  if Zahl < high(MyPoints)-1 then
    MyPoints[Zahl] := Point(X,Y)
  else
  begin
    zahl := 1;
    MyPoints[Zahl] := Point(X,Y);
  end;
  for i := 1 to high(MyPoints)-1 do
  begin
    If (MyPoints[i].X <> 0) and (MyPoints[i].Y <> 0) then
      Canvas.Pixels[MyPoints[i].X, MyPoints[i].Y] := rgb(105+i,105+i,105+i) ;
     // form1.caption := 'rgb(55+' + IntToStr(i) + ',55+' + IntToStr(i) +',55+' + IntToStr(i) ;
  end;
  //Canvas.Pixels[Xold,Yold] := clgray;
  //MyPoint[
  inc(Zahl);
end;

procedure TForm1.FormCreate(Sender: TObject);
var i : Integer;
begin
  for i := 1 to high(MyPoints)-1 do
    MyPoints[i] := Point(0,0);
end;
wenn ihr es ausprobiert werdet ihr sehen das der code insofern schlecht ist ...

ich wollte das der pixel der neu gezzeichnet wird der hellste ist(weiß also) und der rest pixel für pixel grauer wird (von hell zu dunkel) so das es auschaut als zieht es sich so hinterhe rund fällt ab

geht aber irgendwie nicht ganz und die logik hab ich nicht
Nico Müller
  Mit Zitat antworten Zitat
Nicodius

Registriert seit: 25. Apr 2003
Ort: Graz
2.234 Beiträge
 
Delphi 2006 Architect
 
#10

Re: color integer wert von "grau"

  Alt 23. Nov 2004, 22:03
*push*
Nico Müller
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:08 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