Python Imaging Libraryを使用して奇妙な問題に遭遇しています。ここで私は理解しやすくするために最後でバージョンで(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'
出力は非常に奇妙です。最初の画像の場合、私はそれをここに添付しました:
あなたは「タイトルテキスト」は成功し、ここに表示されることを見ることができます。
しかし、50kピクセルの高さの画像で同じことをすると、何らかの理由でタイトルテキストが表示されません。イメージはどこでも白いだけです。私は、上にスクロールしてズームしてもテキストを見ることができませんでした。私は以前、50kピクセルよりはるかに大きな高さの画像を貼り付けることができましたが、これはうまくいかないようです。
(1)誰でもこの結果を再現できますか? (2)なぜこれがうまくいかないのかについてのアイデアはありますか?
もう少しテストをしました。テキストが消えるときの「カットオフ」のように見えるのは、高さが40kから50kピクセルの間です。 PILには調整が必要な画像サイズ制限パラメータがありますか?それは非PILの問題かもしれませんが、イメージをどのようにレンダリングするか(私はUbuntuで 'gnome-open'を使っています)、私はそれを疑っています... – ComputerScientist