ImageEn, unit iegdiplus

TIECanvas.GradientFillRect

TIECanvas.GradientFillRect


Declaration

procedure GradientFillRect(aRect: TRect; Dir: TIEGDIPlusGradient = gpgVertical);
procedure GradientFillRect(aRect: TRect; FromColor, ToColor: TColor; Dir: TIEGDIPlusGradient = gpgVertical);


Description

Fill an area with a gradient.

With first overload:
From Color is specified by Brush.Color and Brush.Transparency
To Color is specified by Brush.BackColor and Brush.BackTransparency




Examples

// Fill image with a vertical gradient from yellow to red
ImageEnView1.IEBitmap.IECanvas.GradientFillRect( Rect( 0, 0, ImageEnView1.IEBitmap.Width, ImageEnView1.IEBitmap.Height ), clYellow, clRed, gpgVertical );
ImageEnView1.Update();


// Create an alpha gradient image
var
  ieBmp: TIEBitmap;
  r: TRect;
begin
  ieBmp := TIEBitmap.Create(320, 240, clWhite );
  try
    r := ieBmp.IECanvas.GDICanvas.ClipRect;
    InflateRect( r, 1, 1 );      // Because Fill may smooth edges

    // Fill image with purple
    ieBmp.IECanvas.FillRect( r, clPurple );

    // Draw gradient to our alpha channnel
    ieBmp.AlphaChannel.PixelFormat := ie24RGB;   // Temporary promote the alpha channel to 24bit to get smoother gradient
    ieBmp.AlphaChannel.IECanvas.GradientFillRect( r, clWhite, clBlack, gpgDiagonal );
    ieBmp.SyncAlphaChannel();                              // Now revert alpha to ie8g

    ieBmp.SaveToFile( 'D:\AlphaGradient.png' );
  finally
    ieBmp.Free;
  end;
end;



See Also

IEDrawGradientToComboListBoxItem