gpt4 book ai didi

python - 使用 pyCairo 旋转图像

转载 作者:太空狗 更新时间:2023-10-30 02:43:05 24 4
gpt4 key购买 nike

我无法理解如何使用 pyCairo 简单地旋转图像...

这是我根据 this example 所做的:

image_surface = cairo.ImageSurface.create_from_png(image_path)
width = image_surface.get_width()
height = image_surface.get_height()

context = cairo.Context(cairo.ImageSurface (cairo.FORMAT_ARGB32, width, height))

context.translate(width*0.5, height*0.5)
context.rotate(45.0*math.pi/180.0)
context.scale(1.0, 1.0)
context.translate(-width*0.5, -height*0.5)

context.set_source_surface(image_surface, 0, 0)
context.paint()

image_surface.write_to_png(output_path)

输出图像与初始图像相同。我错过了什么?

最佳答案

有两个问题:

  1. 您必须使用 cairo.ImageSurface 实例来写入新图像:

    surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
    context = cairo.Context(surface)
    (...)
    surface.write_to_png(output_path)
  2. 您必须切换指令 context.scalecontext.translate:

    context.translate(width*0.5, -height*0.5)
    context.scale(1.0, 1.0)

顺便说一下,应该重新计算新图像的宽度和高度。

关于python - 使用 pyCairo 旋转图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34595604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com