Results 1 to 6 of 6

Thread: TColor naar RGB waarde en andersom

  1. #1

    TColor naar RGB waarde en andersom

    Wie weet hoe ik een TColor kan omzetten naar een RGB waarde en andersom? Ik kan wel colortorgb gebruiken en stringtocolor maar dan krijg ik 1 getal en ik wil de 3 waardes (rood/groen/blauw) apart hebben, vervolgens wil ik ze ook weer terug kunnen zetten, weet iemand hoe dit moet?
    Lynx,
    www.animals.nl

  2. #2
    Met onderstaande functies moet het lukken

    Code:
    procedure ColorToBytes(aColor: TColor; var B: Byte; var G: Byte; var R: Byte);
    begin
      B := (aColor and $00FF0000) shr 16;
      G := (aColor and $0000FF00) shr 8;
      R := (aColor and $000000FF);
    end;
    
    procedure BytesToColor(B,G,R: Byte; var aColor: TColor);
    begin
      aColor := B shl 8;
      aColor := (aColor + G) shl 8;
      aColor := aColor + R;
    end;
    Marcel Vroone

  3. #3
    Senior Member rieni's Avatar
    Join Date
    Mar 2001
    Location
    Br?©ttum bij Lillehammer, Noorwegen
    Posts
    342
    Van TColor naar RGB:

    var r,g,b:byte;

    r:=GetRValue(MyColor);
    g:=GetGValue(MyColor);
    b:=GetBValue(MyColor);

    Van RGB naar TColor

    MyColor:=RGB(205,10,10)
    of natuurlijk:
    MyColor:=RGB(r,g,b);

    Ik denk dat dit is wat je bedoelt.
    Rieni

  4. #4
    Old Navigator Matthijs's Avatar
    Join Date
    Mar 2001
    Location
    Ede, NL. Delphi: Delphi 7/2005 :). Matthijs schrijf je Matthijs
    Posts
    2,199
    Hi,

    worden de RGB waarden niet als een 8bits waarde opgeslagen? Als je dus na ColorToRGB het resultaat bewerkt, moet je volgens mij aan de R-, G- en B-waarde kunnen komen.
    Experimenteer eens met:
    Code:
      Kleur := ColorToRGB(....);
      Rood := Kleur div (256*256);
      Groen := (Kleur div 256) mod 256;
      Blauw := Kleur mod (256 * 256);
    
    // andere kant op
      TmpInt := (((Rood * 256) + Blauw) * 256) + Groen;
      KleurString := IntToHex(TmpInt);
      Kleur := StringToColor(KleurString);
    Een en ander gauw ff bedacht, garantie tot aan de deur. Lees de Help er dus op na, maar hiermee moet je toch in de richting kunnen komen!


    [Edit] Oops! Was alweer te laat!
    What's in a sig?

    Would my posting be less valuable if it didnot have a sig? (Vrij naar William S.)

    Let op de kleine lettertjes. For all postings: e&oe!
    This program performed an illegal function, the police are on their way

  5. #5
    Hmmm, als borland nu eens die Win32 api in z'n eigen help zou intergreren had ik die functie RGB ook gevonden en niet zo moeilijk hoeven doen. Nu maar even zelf doen met de open help, hoef ik voortaan misschien niet zo ingewikkeld te doen

    Marcel Vroone
    Last edited by mvroone; 20-Aug-01 at 14:59.

  6. #6
    Bedankt allemaal, het is me al gelukt om van een afbeelding voor elke pixel de rgb waarde te veranderen!

    Thnx,
    Lynx

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Waarde van een ASCII teken
    By Georges in forum Algemeen
    Replies: 5
    Last Post: 10-Sep-04, 11:50
  2. Firebird Recno verkeerde waarde na delete
    By r.nijenhuis in forum Databases
    Replies: 15
    Last Post: 22-Apr-04, 23:56
  3. Replies: 6
    Last Post: 22-Feb-04, 15:12
  4. default waarde boolean data type
    By fuchsia in forum Algemeen
    Replies: 9
    Last Post: 18-Dec-03, 00:24
  5. Waardes in TRecord proppen (TImage waarde)
    By Arag in forum Algemeen
    Replies: 12
    Last Post: 18-Sep-03, 00:40

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •