Ver Mensaje Individual
  #8  
Antiguo 03-11-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 26
seoane Va por buen camino
Bueno pues parece que si tenia tiempo , aquí te dejo el algoritmo modificado para crear un degradado de 258x160 (el ancho tiene que ser múltiplo de 6). Espero que te sirva, acuerdate de modificar el tamaño del TImage y poner Streach a FALSE

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  h,s,b: integer; //Tono, Saturacion, Luminosidad
  i,j: integer;
  x,y,z: integer;
begin
  Image1.Picture.Bitmap.Width:= 258;
  Image1.Picture.Bitmap.Height:= 160;
  with Image1.Canvas do
    begin
      Brush.Color:= clBlack;
      FillRect(ClipRect);
      b:= 255; // Luminosidad entre 0 y 255
      for h:= 0 to 257 do
        begin
          i:= ((h mod 43) * b) div 43;
          j:= b - i;
          for s:= 0 to 160 do
            begin
              x:= i + ((b-i) * s) div 160;
              y:= j + ((b-j) * s) div 160;
              z:= (b * s) div 160;
              case (h div 43) of
                0: Pixels[h,s]:= RGB(b,x,z);
                1: Pixels[h,s]:= RGB(y,b,z);
                2: Pixels[h,s]:= RGB(z,b,x);
                3: Pixels[h,s]:= RGB(z,y,b);
                4: Pixels[h,s]:= RGB(x,z,b);
                5: Pixels[h,s]:= RGB(b,z,y);
              end;
            end;
        end;
    end;
end;

Recuerda que al ya no usar la propiedad Streach ya no tienes que preocuparte por las corregir las coordenadas del ratón.

Última edición por seoane fecha: 03-11-2006 a las 14:01:04.
Responder Con Cita