• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

ColorToRgb

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
ColorToString





O exemplo a seguir leva um componente Image e três Label no Form. Ele dá o RGB do local da imagem onde o usuário der um clique (ou melhor, MouseDown), bem como a cor (em string).




//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
int L = ColorToRGB(Image1->Canvas->Pixels[X][Y]);
Label1 -> Caption = L;

// Outra forma de obter o RGB
TColor color;
color = Image1->Canvas->Pixels[X][Y];
Label2 -> Caption = color;

// Agora uma forma de obter a cor por extenso
AnsiString M = ColorToString(Image1->Canvas->Pixels[X][Y]);
Label3->Caption = M;

// Para este código deve-se recorrer à
// imagem como uma matriz
// quantidade de vermelho no pixel
TColor R=GetRValue(Image1->Canvas->Pixels[X][Y]);
// quantidade de Verde
TColor G=GetGValue(Image1->Canvas->Pixels[X][Y]);
//quantidade de azul
TColor B=GetBValue(Image1->Canvas->Pixels[X][Y]);
Label4 -> Caption = (String)"RGB( " + R + ", " + G + ", " + B + ")";

}
//---------------------------------------------------------------------------
 
Topo