2016-10-24 4 views
0

を使用します。私はwin8とpython3.4を使用してテキストをイメージに変換する必要があります。私は自分自身を実装しようとしています。しかし、私はOSErrorに遭遇します。代わりにStringIOのBytesIO、それは誤り「OSErrorのがポップアップ表示されます:> XXXXで画像ファイル< _io.BytesIOオブジェクトを識別することはできませんOSError:0x00000000022810D8のイメージファイル<_io.StringIOオブジェクト>

を私はまだ理由を見つけることができません次のように

コード:

# -*- coding: utf-8 -*- 
import os 
import pygame 
from io import StringIO,BytesIO 
from PIL import Image 

pygame.init() 
text = u'This is a test text,test 123.' 
font_path = "C:/windows/fonts/simsun.ttc" 
im = Image.new("RGB",(300,50),(255,255,255)) 
font = pygame.font.Font(os.path.join(font_path),22) 
rtext = font.render(text, True, (0,0,0),(255,255,255)) 

sio = StringIO() 
print(sio.getvalue()) 
pygame.image.save(rtext, sio) 
sio.seek(0) 
#print(sio.getvalue()) 
line = Image.open(sio) 
im.paste(line,(10,5)) 

im.show() 
im.save("t1.png") 

私はこのエラーを受け取ります:

Traceback (most recent call last): 
    File "D:/mypython/learn/demo.py", line 19, in <module> 
    line = Image.open(sio) 
    File "D:\Python34\lib\site-packages\PIL\Image.py", line 2319, in open 
    % (filename if filename else fp)) 
OSError: cannot identify image file <_io.StringIO object at 0x00000000022810D8> 

答えて

0
line = Image.open(sio) 

は私に関する限り、sioはまだStringIO()です。イメージとして開く場合はline = Image.open(name)で開きます。nameは画像の実際の名前で、StringIO()ではありません。

関連する問題