贊@Bryan Oakley說:有沒有獲得Tkinter Canvas繪圖的柵格化版本的方法。
不過,我想通了,這種解決方法:
import skimage.io as ski_io
(...)
# draw your canvas
(...)
# save canvas to .eps (postscript) file
canvas.postscript(file="tmp_canvas.eps",
colormode="color",
width=CANVAS_WIDTH,
height=CANVAS_HEIGHT,
pagewidth=CANVAS_WIDTH-1,
pageheight=CANVAS_HEIGHT-1)
# read the postscript data
data = ski_io.imread("tmp_canvas.eps")
# write a rasterized png file
ski_io.imsave("canvas_image.png", data)
我真的不喜歡的解決方法,但skimage
似乎是閱讀PostScript文件,寫的PNG最快的解決方案。
Scikit-image被開發爲SciPy一個工具包,因此它正在與scipy.ndimage
內部,這是我想要什麼,並可以用來很容易地創建np.ndarray
。
此外,scikit-learn是一個功能強大且快速的圖像處理軟件,可以操作,讀取和保存各種圖像格式。
現在你有充分的選擇:得到NumPynp.ndarray
就進一步計算帆布數據,操縱scipy.ndimage
與SciPy的/ scikit圖像或保存數據,例如作爲一個光柵化的PNG,到磁盤。
我從來沒有使用過numpy,但是從canvas項目獲取座標的方法已有詳細記錄。 –
是的,但我需要圖像數據,如數據數組或像Canvas中的某些圖像文件(如jpg,png,tiff,位圖等)。對象的座標本身與我無關,因爲只有座標,我將不得不重新繪製景物,例如用PIL。我需要光柵化圖像數據。 – daniel451
沒有辦法從畫布上獲取柵格化圖像數據 –