我需要有一個Python文件,就像它是一個圖像一樣。即Python文件的路徑將在網頁的標籤內使用。 Python文件將使用PIL動態創建一個圖像(無中間保存到文件)。在Python/Web.Py中使用PIL提供動態圖像的正確方法
我使用Python 2.7,Web.Py,& PIL,並在32位Windows XP上開發,使用WAMPSS Web服務器並使用最新的Chrome。
我是差不多那裏。我認爲。
這裏是我的Python圖像文件的砍伐例如:
#!/home/bin/python
# #############################################################################
import web, sys
from PIL import Image, ImageDraw, ImageFont
# #############################################################################
class debug:
def GET(self):
# drawing with PIL (Python Image Library)
# create a new 256x256 pixel image surface (default is black bg)
img = Image.new("RGB", (256, 256))
# set up the new image surface for drawing
draw = ImageDraw.Draw (img)
# REMOVED - Image manipulation
# Output the image to the browser
sys.stdout.write('Status: 200 OK\r\n')
sys.stdout.write('Content-type: image/png\r\n')
sys.stdout.write('\r\n')
img.save(sys.stdout, "PNG")
# #############################################################################
urls = ('/debug.py', 'debug')
app = web.application(urls, globals())
if __name__ == "__main__":
app.run()
# #############################################################################
現在,這個工程...有點兒。
如果我直接在瀏覽器(本地AMPSS服務器)中查看此文件,它會顯示圖像。但是,與類似的1k PNG圖像相比,顯示/服務器需要很長時間(5+秒)。和Chrome控制檯說,它失敗了(雖然我可以看到圖像)
我認爲瀏覽器正在期待別的東西,我沒有發送?
當我在JQuery和OnLoad事件中使用此圖像時,出現了實際問題。事情變得......奇怪......因爲缺乏一個更好的詞彙。我似乎有事件(不是我的),它在顯示加載&許多秒後清除圖像。
的鉻控制檯說,檢索圖像時,GET失敗(雖然它不顯示圖像,至少直到JS什麼使得它再次消失!)
有趣的是,這個問題似乎並沒有出現在最新的Firefox中。 在最新的Opera中加載時間被誇大了,但JS不會影響圖像。在IE8中也是一樣
爲了讓事情更混亂,我有兩臺Windows XP(32位)開發機器。他們之中沒有發生JS故障。 Chrome控制檯不會列出任何錯誤!
我已經穿上了圖像文件的在線演示在這裏:LINKY 和使用這個文件我在這裏的發展頁:LINKY 如果你點擊周圍的白色圖像執行人了jQuery/JS會激活。
我不知道這是否適用於您的設置。我只是爲了完整而鏈接到這裏。
關於我失蹤的任何想法?
我接受你的建議是正確的方法來輸出數據,但它會出現我的方式(但編碼錯誤的)創建的輸出,其中相同瀏覽器感到擔憂。我最終發現,我的問題是由Chrome和卡巴斯基之間的一個奇怪的不兼容性錯誤引起的,數據字節丟失。不幸的是,在我的代碼中不可修復,儘管至少我現在正在爲Web.Py提供正確方法中的數據。 – Dave 2013-02-21 11:37:12