Cita:
Empezado por juanchi
Hola.
Para pasar un pixel a hexa utilizo la sentencia:
Valor:= Canvas.Pixels[5,5] and $FF;
Ahora tengo el valor en hexa, ¿cómo puedo hacer el proceso inverso?
Saludos.
|
hola juanchi, no comentas si al final conseguiste realizar el histograma, supongo que si. En cuanto a lo que preguntas ahora, vamos por partes. Cuando dices que tienes su valor en hexa ¿a que te refieres?, la instrucción que mencionas solamente sirve para seleccionar el byte mas bajo del color, pero no cambia la naturaleza de la variable que en ambos casos es un integer.
Si lo que quieres es volver a recuperar el color gris correspondiente a ese valor solo tenemos que añadir los otros dos bytes, pero como sabemos que en el caso de los grises los tres bytes son iguales esta operación es sencilla:
Código Delphi
[-]
var
Color: TColor;
begin
Color:= RGB(Valor,Valor,Valor);
Color:= (Valor shl 16) + (Valor shl 8) + Valor;
end;