DrawInvertedDashedLine

procedure DrawInvertedDashedLine(img: TImage32; const line: TArrayOfPointD; dashPattern: TArrayOfInteger; patternOffset: PDouble; lineWidth: double; endStyle: TEndStyle; joinStyle: TJoinStyle = jsAuto); overload;

procedure DrawInvertedDashedLine(img: TImage32; const lines: TArrayOfArrayOfPointD; dashPattern: TArrayOfInteger; patternOffset: PDouble; lineWidth: double; endStyle: TEndStyle; joinStyle: TJoinStyle = jsAuto); overload;


Example
  uses Image32, Image32_PNG, Image32_Vector, Image32_Draw;
  ...
  var
    img: TImage32;
    path: TArrayOfPointD;
    rec: TRect;
  begin
    img.SetSize(256,256);
    rec := img.Bounds;
    
    rec.Right := rec.Right div 4;
    path := Rectangle(rec);

    //draw a multicolored background
    DrawPolygon(img, path, frEvenOdd, clRed32);
    path := OffsetPath(path, rec.Width, 0);
    DrawPolygon(img, path, frEvenOdd, clYellow32);
    path := OffsetPath(path, rec.Width, 0);
    DrawPolygon(img, path, frEvenOdd, clLime32);
    path := OffsetPath(path, rec.Width, 0);
    DrawPolygon(img, path, frEvenOdd, clBlue32);

    //draw a color inverted dashed line
    path := Ellipse(RectD(30,30,226,226));
    DrawInvertedDashedLine(img, path, 
      [30, 8], nil, 10, esClosed, jsMiter);
      
    img.SaveToFile('InvertedDashedLine.png');
    img.Free;
  end;