2011-12-16 11 views
2

私はPython graphicsモジュールを使っています。私がしようとしているのは、現在のウィンドウをイメージとして保存することです。このモジュールには、「イメージ」をイメージ(image.save())として保存するオプションがあります。しかし、これはすでに読み込んだイメージを保存するだけで役に立ちません。または、空白のイメージを読み込むと、それを引き継ぎたいと思ったように、驚き、驚き:空白のイメージが保存されます。ここに私のコードは次のとおりです。ここではそうもう一度Pythonグラフィックスモジュールの操作:現在のウィンドウをイメージとして保存する方法はありますか?

from graphics import * 


w = 300 
h = 300 

anchorpoint=Point(150,150) 
height=300 
width=300 

image=Image(anchorpoint, height, width) #creates a blank image in the background 

win = GraphWin("Red Circle", w, h) 
# circle needs center x, y coordinates and radius 
center = Point(150, 150) 
radius = 80 
circle = Circle(center, radius) 
circle.setFill('red') 
circle.setWidth(2) 
circle.draw(win) 
point= circle.getCenter() 

print point 
pointx= point.getX() 
pointy= point.getY() 
print pointx 
print pointy 

findPixel=image.getPixel(150,150) 
print findPixel 
image.save("blank.gif") 

# wait, click mouse to go on/exit 
win.getMouse() 
win.close() 

#######that's it##### 

は私の問題です:どのように私は、「blank.gif」として画面上に今あるものを保存しない ありがとう!

答えて

1

描画するオブジェクトはTkinterに基づいています。私はあなたが実際にベースイメージを描いているとは思わないが、単に "グラフィックス"ライブラリを使ってTkinterオブジェクトを作成するだけです。また、Tkinterを "gif"ファイルに保存することはできませんが、ポストスクリプト形式で保存してからgif形式に変換することは間違いありません。

これを行うには、PythonのPILライブラリが必要です。

すべてのオブジェクトが実際にTKinterオブジェクトである場合は、オブジェクトを保存するだけで済みます。以下では

image.save("blank.gif") 

:このコード行を置き換えることにより、

スタート追加情報が必要な場合は

# saves the current TKinter object in postscript format 
win.postscript(file="image.eps", colormode='color') 

# Convert from eps format to gif format using PIL 
from PIL import Image as NewImage 
img = NewImage.open("image.eps") 
img.save("blank.gif", "gif") 

http://www.daniweb.com/software-development/python/code/216929をチェックしてみてください - 私は提案したコードを得たところです。

保存/変換よりも洗練された解決策があると確信していますが、私はTKinterについてよく知らないので、これが私が見つけた唯一の方法です。

希望すると助かります!

+0

ありがとうございます! – Dlinet

関連する問題