如何在使用python保存之前翻转cairo曲面?

2024-04-16 21:47:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用cairo创建纹理并保存,问题是如果我直接使用opengl的表面,它垂直翻转。在

如果我保存并加载,我可以使用pil和im.tostring公司()翻转它。在

有没有一个好的方法来翻转它在开罗表面,也许保存我的png然后翻转使用,或者将图像颠倒保存。在

或者,我可以创建一个PIL图像并与ciaro共享缓冲区,这样我就可以使用PIL-tostring方法来确定纹理的方向。在

开放的建议,没有太多的信息混合cairo和opengl与python。在


Tags: 方法图像pilpng公司方向表面opengl
1条回答
网友
1楼 · 发布于 2024-04-16 21:47:24

一种解决方案是调整纹理坐标,或者在使用旧矩阵堆栈时对纹理矩阵应用缩放矩阵(1,-1)。在

另一种方法是通过FBO将着色器中的像素(texcoord.y=1.0-texcoord.y)反转为新纹理。 (这是个不错的选择)

uniform sampler2D diffuseTexture;

void main (void)  
{
    vec2 t = gl_TexCoord[0].st;
    t.y = 1.0 - t.y;
    vec4 c = texture2D(diffuseTexture, t);          
    gl_FragColor = c;                         
}

相关问题 更多 >