目前我正在使用rsvg加载svg(从字符串,而不是从文件)和绘图到cairo.谁知道更好的方法?我在我的应用程序中的其他位置使用PIL,但我不知道如何使用PIL执行此操作.
我有生成Cairo的代码ImageSurface,我这样暴露它:
def preview(...):
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
...
cherrypy.response.headers['Content-Type'] = "image/png"
return surface.get_data()
preview.exposed = True
Run Code Online (Sandbox Code Playgroud)
这不起作用(浏览器报告图像有错误).
我已经测试了它的surface.write_to_png('test.png')工作原理,但是我不确定将数据转储到什么内容以返回它.我猜一些像文件一样的对象?根据pycairo文档,get_data()返回一个缓冲区.我现在也尝试过:
tempf = os.tmpfile()
surface.write_to_png(tempf)
return tempf
Run Code Online (Sandbox Code Playgroud)
另外,最好是在内存中创建并保存此图像(就像我正在尝试做的那样)或将其作为临时文件写入磁盘并从那里提供服务?我只需要一次图像,然后就可以丢弃了.
我用cython包装一个C++库.在头文件中,有一些结构从其他结构继承,如下所示:
struct A {
int a;
};
struct B : A {
int b;
};
Run Code Online (Sandbox Code Playgroud)
这应该怎么看我的cdef extern...街区?
我使用python rsvg绑定将svg图像渲染到cairo并保存到文件,这主要起作用.但是如果svg文件包含链接图像,如下所示:
<image href="static/usrimgs/tmpDtIKpx.png" x="10" y="10" width="600px" height="400px"></image>
Run Code Online (Sandbox Code Playgroud)
图像没有显示在最终文件中(svg的其余部分渲染得很好).根据脚本运行的位置,相对路径是正确的,但我猜测它通常是相对URL而不是相对文件路径这一事实存在一些问题.我该如何解决这个问题?
我一直在努力教自己emacs,因为我正在使用dvorak,我愚蠢地反弹C-c到一个运动键并习惯了它.现在我实际上开始用它做一些编程,我加载了一个python文件,并注意到它C-c是所有特殊命令的前缀python-mode.
我可以重新绑定前缀键并在我的init.el文件中一举更改所有python命令吗?如果没有,我应该单独重新绑定所有python命令吗?
如果我要创建一个用户可以将任意html放入其"个人资料"或类似内容的网站,我该如何阻止该html中嵌入的JavaScript运行?
我可以在for(;;);某处放置无限循环吗?如果是这样,我会把它放在哪里?
此方法还有哪些其他安全问题?