首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用pyCairo旋转图像

用pyCairo旋转图像
EN

Stack Overflow用户
提问于 2016-01-04 16:34:38
回答 1查看 1.2K关注 0票数 6

我很难理解如何简单地用pyCairo旋转图像.

以下是我在这个例子基础上所做的工作:

代码语言:javascript
运行
复制
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)

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-04 17:02:28

有两个问题:

  1. 您必须使用cairo.ImageSurface实例来编写新映像: Cairo.ImageSurface=cairo.FORMAT_ARGB32(宽度、高度)上下文=cairo.Context(表面)(.)surface.write_to_png(output_path)
  2. 您必须切换指令context.scalecontext.translate: Context.translate(宽度*0.5,-height*0.5) context.scale(1.0,1.0)

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34595604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档