x1, y1, x2, y2 = ccontext:StrokeExtents()
Note that if the line width is set to exactly zero, then
ccontext:StrokeExtents() will return an empty rectangle. Contrast with
ccontext:PathExtents() which can be used to compute the non-empty
bounds as the line width approaches zero.
Note that ccontext:StrokeExtents() must necessarily do more work to
compute the precise inked areas in light of the stroke parameters,
so ccontext:PathExtents() may be more desirable for sake of
performance if non-inked path extents are desired.
See ccontext:Stroke(), ccontext:SetLineWidth(), ccontext:SetLineJoin(), ccontext:SetLineCap(), ccontext:SetDash(), and ccontext:StrokePreserve().