25
mới đối với PIL, nhưng muốn nhận được giải pháp nhanh chóng. Sau đây là phát súng đầu tiên của tôi mà không bao giờ hoạt động:làm thế nào để lưu một hình pylab vào tập tin trong bộ nhớ mà có thể được đọc vào hình ảnh PIL?
import cStringIO
import pylab
from PIL import Image
pylab.figure()
pylab.plot([1,2])
pylab.title("test")
buffer = cStringIO.StringIO()
pylab.savefig(buffer, format='png')
im = Image.open(buffer.read())
buffer.close()
lỗi nói,
Traceback (most recent call last):
File "try.py", line 10, in <module>
im = Image.open(buffer.read())
File "/awesomepath/python2.7/site-packages/PIL/Image.py", line 1952, in open
fp = __builtin__.open(fp, "rb")
bất kỳ ý tưởng? Tôi không muốn giải pháp liên quan đến các gói phụ, cảm ơn.
Awesome! Nó hoạt động như một say mê! ngay cả khi tôi thay thế 'io.BytesIO' bằng' StringIO' ban đầu của tôi. Bạn có thể nhắc bạn về lý do tại sao bạn chọn sử dụng cái cũ ở đây không? Cảm ơn! – nye17
Đối với Python2.6 trở lên, sử dụng 'io.BytesIO' thay vì' cStringIO.StringIO' để tương thích về phía trước. Trong Python3, các mô-đun 'cStringIO',' StringIO' đã biến mất. Chức năng của chúng là tất cả trong mô-đun 'io'. – unutbu
gotcha, cảm ơn! – nye17