微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PyMuPDF - 从中​​心向各个方向缩放四边形

如何解决PyMuPDF - 从中​​心向各个方向缩放四边形

我正在 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。