PyMuPDF - 从中心向各个方向缩放四边形
PyMuPDF - Scale a Quad from center in all directions
我在 pdf 中搜索文本并提取四边形并在其周围添加 polygon_annot。
但是我想缩放polygon_annot。我该怎么做?
下面是我的代码:
for inst in text_instances:
inst = inst.transform(fitz.Matrix(2, 2))
print(inst)
print(inst.rect)
# re-ordering the points in list counter-clockwise
inst[2], inst[3] = inst[3], inst[2]
highlight = page.add_polygon_annot(inst)
我目前正在用 inst.transform(fitz.Matrix(2, 2)) 缩放它,但这只是简单地乘以这些值。如何缩放四边形中心的值?
您可以使用 morph
来缩放四边形。
参考文档:https://pymupdf.readthedocs.io/en/latest/quad.html#Quad.morph
下面是我用来按中心缩放变形的函数:
def getPolygon(quad, scale=1):
[sumX, sumY] = [0, 0]
for point in quad:
sumX += point[0]
sumY += point[1]
avgX = sumX/4
avgY = sumY/4
# Scale the rectange using Quad.morph(): https://pymupdf.readthedocs.io/en/latest/quad.html#Quad.morph
quad= quad.morph(fitz.Point(avgX, avgY), fitz.Matrix(scale, scale))
return quad
我在 pdf 中搜索文本并提取四边形并在其周围添加 polygon_annot。 但是我想缩放polygon_annot。我该怎么做?
下面是我的代码:
for inst in text_instances:
inst = inst.transform(fitz.Matrix(2, 2))
print(inst)
print(inst.rect)
# re-ordering the points in list counter-clockwise
inst[2], inst[3] = inst[3], inst[2]
highlight = page.add_polygon_annot(inst)
我目前正在用 inst.transform(fitz.Matrix(2, 2)) 缩放它,但这只是简单地乘以这些值。如何缩放四边形中心的值?
您可以使用 morph
来缩放四边形。
参考文档:https://pymupdf.readthedocs.io/en/latest/quad.html#Quad.morph
下面是我用来按中心缩放变形的函数:
def getPolygon(quad, scale=1):
[sumX, sumY] = [0, 0]
for point in quad:
sumX += point[0]
sumY += point[1]
avgX = sumX/4
avgY = sumY/4
# Scale the rectange using Quad.morph(): https://pymupdf.readthedocs.io/en/latest/quad.html#Quad.morph
quad= quad.morph(fitz.Point(avgX, avgY), fitz.Matrix(scale, scale))
return quad