【问题标题】:PyMuPDF - Scale a Quad from center in all directionsPyMuPDF - 从中​​心向各个方向缩放四边形
【发布时间】:2021-10-03 21:06:23
【问题描述】:

我正在搜索 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)) 对其进行缩放,但这只是将值相乘。如何从四边形的中心缩放值?

【问题讨论】:

    标签: python mupdf pymupdf


    【解决方案1】:

    您可以使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-19
      • 1970-01-01
      • 2013-02-01
      • 2010-10-16
      • 2022-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多