Python Pycairo在绘制100';填充物的数量
当PDF表面上出现1000多个填充圆时,绘制一个填充圆的小数组失败,但是相同上下文的PNG渲染没有问题。我已经尝试了一系列的解决方案,但不容易得到错误信息或其他线索——有什么想法吗?(在Mac OS X 10.12.6下,安装了最新的库)Python Pycairo在绘制100';填充物的数量,python,cairo,pycairo,Python,Cairo,Pycairo,当PDF表面上出现1000多个填充圆时,绘制一个填充圆的小数组失败,但是相同上下文的PNG渲染没有问题。我已经尝试了一系列的解决方案,但不容易得到错误信息或其他线索——有什么想法吗?(在Mac OS X 10.12.6下,安装了最新的库) 这个问题原来是一个奇怪的MS代码(VisualStudio)问题:从命令行运行,上面的代码可以生成良好的PDF,但从内部代码运行却不能。此外,只有最后处理的文件/上下文不起作用(并且足够大或需要足够长的时间来处理?),因此在末尾添加一个虚拟/额外上下文“可以解
这个问题原来是一个奇怪的MS代码(VisualStudio)问题:从命令行运行,上面的代码可以生成良好的PDF,但从内部代码运行却不能。此外,只有最后处理的文件/上下文不起作用(并且足够大或需要足够长的时间来处理?),因此在末尾添加一个虚拟/额外上下文“可以解决这个问题”。我怀疑存在同步问题,例如在子进程完成之前关闭文件、缓冲区未正确刷新等
请注意,context.finish、context.flush对行为没有影响。问题原来是一个奇怪的MS代码(Visual Studio)问题:从命令行运行,上面的代码生成良好的PDF,但从内部代码运行它不会。此外,只有最后处理的文件/上下文不起作用(并且足够大或需要足够长的时间来处理?),因此在末尾添加一个虚拟/额外上下文“可以解决这个问题”。我怀疑存在同步问题,例如在子进程完成之前关闭文件、缓冲区未正确刷新等
注意context.finish、context.flush对行为没有影响。
失败
意味着什么?有些圆圈是看不见的,还是所有圆圈都是看不见的?或者其他问题?有时会生成无法读取的文件,但通常是零长度的PDF文件。surface.finish是一个函数失败
意味着什么?有些圆圈是看不见的,还是所有圆圈都是看不见的?或者其他问题?有时会生成无法读取的文件,但通常是零长度的PDF文件。surface.finish是一个函数。您是否尝试实际调用surface.finish
?您的示例中没有()
,因此没有实际调用该函数。您是否尝试实际调用曲面。finish
?您的示例中没有()
,因此实际上没有调用该函数。
import cairo
Pi=3.14159265
# this works, Python 2.7
surface = cairo.PDFSurface("cairoTest.pdf", 595, 842)
cntxt = cairo.Context(surface)
cntxt.set_source_rgb(.3, .1, .6)
for xstep in range(0,50,1):
for ystep in range(0,31,1):
cntxt.arc(xstep*10.+30, ystep*10.+30, 3., 0., 2.*Pi)
cntxt.fill()
surface.write_to_png("example.png") # Output to PNG
surface.finish
# this produces zero-byte file
surface = cairo.PDFSurface("cairoTestFkd.pdf", 595, 842)
cntxt = cairo.Context(surface)
cntxt.set_source_rgb(.3, .1, .6)
for xstep in range(0,55,1):
for ystep in range(0,35,1):
cntxt.arc(xstep*10.+30, ystep*10.+30, 3., 0., 2.*Pi)
cntxt.fill()
surface.write_to_png("exampleFkd.png") # Output to PNG
surface.finish