2017-10-06 28 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