Fiz um teste com o seguinte código:

procedure TForm1.Button3Click(Sender: TObject);
var
  Red, Green, Blue, Total: integer;
begin
  Red   := StrToInt('$' + Copy(IntToHex(Shape1.Brush.Color, 6), 5, 2));
  Green := StrToInt('$' + Copy(IntToHex(Shape1.Brush.Color, 6), 3, 2));
  Blue  := StrToInt('$' + Copy(IntToHex(Shape1.Brush.Color, 6), 1, 2));

  Total := Red + Green + Blue;

  if Total > 0 then
    begin
      edtPer2Red.Text   := FormatFloat('##0.00 %', Red * 100 / Total);
      edtPer2Green.Text := FormatFloat('##0.00 %', Green * 100 / Total);
      edtPer2Blue.Text  := FormatFloat('##0.00 %', Blue * 100 / Total);
    end
  else
    begin
      edtPer2Red.Text   := FormatFloat('##0.00 %', 33.33);
      edtPer2Green.Text := FormatFloat('##0.00 %', 33.33);
      edtPer2Blue.Text  := FormatFloat('##0.00 %', 33.33);
    end;

  edtInt2Red.Text   := IntToStr(Red);
  edtInt2Green.Text := IntToStr(Green);
  edtInt2Blue.Text  := IntToStr(Blue);
end;

Acontece que se eu tiver duas cores:

RGB da Cor1: 128, 128, 0
RGB da Cor2: 200, 200, 0

eu tenho as mesmas porcentagens. Imagine em uma tinturaria onde o químico 
mistura 3 ou 4 cores básicas para atingir a tonalidade desejada. O que eu 
precisaria é das porcentagens de uma cor fixa cuja intensidade não varie.

----- Original Message ----- 
  From: Gabriel Ferrarini 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Tuesday, January 11, 2005 8:13 AM
  Subject: Re: [delphi-br] Cores


  Tinha pensado nisso... mas quanto essa porcentagem representaria sobre o 
total das três cores juntas?

  Se eu somar as três eu terei um total válido para calcular a porcentagem???

  Gabriel.

    ----- Original Message ----- 
    From: Fernando 
    To: delphi-br@yahoogrupos.com.br 
    Sent: Monday, January 10, 2005 11:30 PM
    Subject: Re: [delphi-br] Cores



    Ola,

    Supondo que a cor esteja na variavel Cor, do tipo TColor, e as variaveis 
      R, G e B sao do tipo Integer:

    R := StrToInt('$' + Copy(IntToHex(Cor, 6), 5, 2));
    G := StrToInt('$' + Copy(IntToHex(Cor, 6), 3, 2));
    B := StrToInt('$' + Copy(IntToHex(Cor, 6), 1, 2));

    Elas variam de 0 a 255, dai e so calcular a porcentagem.

    Fernando


    Gabriel Ferrarini wrote:
    > Olá a todos, gostaria de saber se é possível extrair as porcentagens das 
cores básicas de uma cor em RGB. Quanto de vermelho, quanto de verde e quanto 
de azul é preciso para formar uma cor. Não adianta ter o código da intensidade, 
preciso das porcentagens mesmo.
    > 
    > Caso não seja possível, sei que o padrão CMYK traz porcentagens de 4 
cores, como trabaçho com esse padrão no Delphi?
    > 
    > Obrigado.
    > Gabriel.
    > 



    -- 
    No virus found in this outgoing message.
    Checked by AVG Anti-Virus.
    Version: 7.0.298 / Virus Database: 265.6.9 - Release Date: 06/01/2005



    -- 
    <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

    Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

    Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED] ou [EMAIL PROTECTED]



          Yahoo! Grupos, um serviço oferecido por: 
               
               
                        
               
         


  ------------------------------------------------------------------------------
    Links do Yahoo! Grupos

      a.. Para visitar o site do seu grupo na web, acesse:
      http://br.groups.yahoo.com/group/delphi-br/
        
      b.. Para sair deste grupo, envie um e-mail para:
      [EMAIL PROTECTED]
        
      c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do 
Serviço do Yahoo!. 



  [As partes desta mensagem que não continham texto foram removidas]



  -- 
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por: 
             
             
                      
             
       


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a