Hola.
Fijate si te sirve de este modo:
Código Delphi
[-]
procedure CenterEllipse(Img: TImage; x1,y1,x2,y2: Integer; aColor: TColor);
var
C,R: TPoint;
begin
C.X := (Img.Picture.Width) div 2;
C.Y := (Img.Picture.Height) div 2;
R.X := (x2-x1) div 2 ;
R.Y := (y2-y1) div 2;
if (C.X-R.X < 0) or (C.Y-R.Y < 0) or
(C.X+R.X > Img.Picture.Width) or (C.Y+R.Y >Img.Picture.Height) then
raise Exception.Create('Elipse fuera de rango');
Img.Canvas.Pen.Color := aColor;
Img.Canvas.Ellipse(C.X - R.X, C.Y - R.Y, C.X + R.X, C.Y + R.Y);
end;
Ejemplo de llamada:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
CenterEllipse(Image1, 17, 17, 528, 528, clBlack);
end;
Salida:
Saludos
