2017-10-06 75 views
0

我正在使用Python图像库运行一个奇怪的问题。下面是我用的版本用于重复性(在ipython)在结束以帮助澄清确切的代码:如果图像尺寸足够大,PIL,Image,ImageDraw不会粘贴文本

Python 3.5.3 |Continuum Analytics, Inc.| (default, Mar 6 2017, 11:58:13) 
Type 'copyright', 'credits' or 'license' for more information 
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help. 

In [1]: from PIL import (Image, ImageDraw) 

In [2]: def title_text(height): 
    ...:  im = Image.new(mode='L', size=(516,height), color=255) 
    ...:  draw = ImageDraw.Draw(im) 
    ...:  draw.text((0,0), "Title Text") 
    ...:  im.save("test_"+str(height)+".png") 
    ...:  

In [3]: title_text(100) 

In [4]: title_text(50000) 

In [5]: import PIL 

In [6]: PIL.__version__ 
Out[6]: '4.1.1' 

我得到的输出是非常奇怪。对于第一个形象,我在这里连接它:

enter image description here

你可以看到,“标题文本”成功获取显示在这里。

但是,当我对高度为50k像素的图像做同样的事情时,出于某种原因标题文本无处可见。这个图像到处都是纯白色的;尽管滚动到顶部并放大,我仍无法看到文本。我曾经能够粘贴更大的图像(高度远高于50k像素),但这似乎不起作用。

(1)任何人都可以重现此结果吗? (2)关于为什么这可能无效的任何想法?

+0

我做了一些更多的测试。看起来像文本消失时的“截止点”在40k到50k像素的高度之间。 PIL是否有一些我需要调整的图像大小限制参数?它也可能是一个非PIL的问题,但与我如何渲染图像(我在Ubuntu中使用'gnome-open'),但我怀疑...... – ComputerScientist

回答

1

这可能是你的观众。如果我在Chrome中打开test_50000.png并将其放大到500%,我会看到顶部的小文本。

+0

该死的,这真的很烦人。如果它不给我形象,有什么像'gnome-open'这样的东西? – ComputerScientist

+0

Dunno。在我的能力范围之外。 – holdenweb