Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pycairo在绘制100';填充物的数量_Python_Cairo_Pycairo - Fatal编程技术网

Python Pycairo在绘制100';填充物的数量

Python Pycairo在绘制100';填充物的数量,python,cairo,pycairo,Python,Cairo,Pycairo,当PDF表面上出现1000多个填充圆时,绘制一个填充圆的小数组失败,但是相同上下文的PNG渲染没有问题。我已经尝试了一系列的解决方案,但不容易得到错误信息或其他线索——有什么想法吗?(在Mac OS X 10.12.6下,安装了最新的库) 这个问题原来是一个奇怪的MS代码(VisualStudio)问题:从命令行运行,上面的代码可以生成良好的PDF,但从内部代码运行却不能。此外,只有最后处理的文件/上下文不起作用(并且足够大或需要足够长的时间来处理?),因此在末尾添加一个虚拟/额外上下文“可以解

当PDF表面上出现1000多个填充圆时,绘制一个填充圆的小数组失败,但是相同上下文的PNG渲染没有问题。我已经尝试了一系列的解决方案,但不容易得到错误信息或其他线索——有什么想法吗?(在Mac OS X 10.12.6下,安装了最新的库)


这个问题原来是一个奇怪的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