[英]Using bezier curves to draw a rectangle with rounded corners in PyMuPDF
我想用PyMuPDF
在pdf中畫一個圓角矩形。顯然,圓角矩形沒有特定的方法。 但我想知道是否可以將Shape.draw_bezier()
或Shape.draw_curve()
用於此目的,進行筆划以恢復矩形的形狀。
興趣問題,這可以通過 PyMuPDF 實現。 但目前做起來還是有點笨拙。 我建議的基本方法是
draw_curve()
的開始和結束(您已經正確地識別了自己 - 起首。)。這是代碼:
import fitz
doc = fitz.open()
page = doc.new_page()
rect = fitz.Rect(100, 100, 300, 200)
d = 10 # controls how round the edges are
# make a shape to get properly connect points
shape = page.new_shape()
lp = shape.draw_line(rect.bl + (d, 0), rect.br - (d, 0))
lp = shape.draw_curve(lp, rect.br, rect.br - (0, d))
lp = shape.draw_line(lp, rect.tr + (0, d))
lp = shape.draw_curve(lp, rect.tr, rect.tr - (d, 0))
lp = shape.draw_line(lp, rect.tl + (d, 0))
lp = shape.draw_curve(lp, rect.tl, rect.tl + (0, d))
lp = shape.draw_line(lp, rect.bl - (0, d))
lp = shape.draw_curve(lp, rect.bl, rect.bl + (d, 0))
shape.finish(color=(1, 0, 0), fill=(1, 1, 0), closePath=False)
shape.commit()
doc.save(__file__.replace(".py", ".pdf"))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.