Added ability to save the workspace to a jpeg file
This commit is contained in:
parent
7ccecb6f5d
commit
a66e3a51ff
60
piboard.py
60
piboard.py
@ -14,6 +14,18 @@
|
|||||||
# Date Written: 10/06/12
|
# Date Written: 10/06/12
|
||||||
|
|
||||||
import wx
|
import wx
|
||||||
|
import os
|
||||||
|
|
||||||
|
def int_of_string(s):
|
||||||
|
try:
|
||||||
|
return int(s)
|
||||||
|
except ValueError:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
def next_filename():
|
||||||
|
return ("boards/"+str(max([int_of_string(i.strip(".jpg")) for i in
|
||||||
|
os.listdir('boards/') or ['0'] if not os.path.isdir(i)]
|
||||||
|
) + 1)+".jpg")
|
||||||
|
|
||||||
class PaintWindow(wx.Window):
|
class PaintWindow(wx.Window):
|
||||||
# array of colors available to draw
|
# array of colors available to draw
|
||||||
@ -46,6 +58,12 @@ class PaintWindow(wx.Window):
|
|||||||
self.button_clear.Bind(wx.EVT_BUTTON, self.button_clear_handle)
|
self.button_clear.Bind(wx.EVT_BUTTON, self.button_clear_handle)
|
||||||
self.button_clear.SetToolTip(wx.ToolTip("Click to clear"))
|
self.button_clear.SetToolTip(wx.ToolTip("Click to clear"))
|
||||||
|
|
||||||
|
self.button_save = wx.Button(self, id=-1, label='Save',
|
||||||
|
pos=(size[0]-250, 25),
|
||||||
|
size=(100, 50))
|
||||||
|
self.button_save.Bind(wx.EVT_BUTTON, self.button_save_handle)
|
||||||
|
self.button_save.SetToolTip(wx.ToolTip("Click to save"))
|
||||||
|
|
||||||
def initDrawing(self):
|
def initDrawing(self):
|
||||||
self.SetBackgroundColour('WHITE')
|
self.SetBackgroundColour('WHITE')
|
||||||
self.currentThickness = self.thicknesses[0]
|
self.currentThickness = self.thicknesses[0]
|
||||||
@ -127,6 +145,7 @@ class PaintWindow(wx.Window):
|
|||||||
def button_clear_handle(self, event):
|
def button_clear_handle(self, event):
|
||||||
self.button_exit.Destroy()
|
self.button_exit.Destroy()
|
||||||
self.button_clear.Destroy()
|
self.button_clear.Destroy()
|
||||||
|
self.button_save.Destroy()
|
||||||
dc = wx.BufferedDC(wx.ClientDC(self), self.buffer)
|
dc = wx.BufferedDC(wx.ClientDC(self), self.buffer)
|
||||||
dc.Clear()
|
dc.Clear()
|
||||||
|
|
||||||
@ -143,6 +162,40 @@ class PaintWindow(wx.Window):
|
|||||||
self.button_clear.Bind(wx.EVT_BUTTON, self.button_clear_handle)
|
self.button_clear.Bind(wx.EVT_BUTTON, self.button_clear_handle)
|
||||||
self.button_clear.SetToolTip(wx.ToolTip("Click to clear"))
|
self.button_clear.SetToolTip(wx.ToolTip("Click to clear"))
|
||||||
|
|
||||||
|
self.button_save = wx.Button(self, id=-1, label='Save',
|
||||||
|
pos=(size[0]-250, 25),
|
||||||
|
size=(100, 50))
|
||||||
|
self.button_save.Bind(wx.EVT_BUTTON, self.button_save_handle)
|
||||||
|
self.button_save.SetToolTip(wx.ToolTip("Click to save"))
|
||||||
|
|
||||||
|
def button_save_handle(self, event):
|
||||||
|
self.button_exit.Destroy()
|
||||||
|
self.button_clear.Destroy()
|
||||||
|
self.button_save.Destroy()
|
||||||
|
|
||||||
|
dc = wx.BufferedDC(wx.ClientDC(self), self.buffer)
|
||||||
|
image = dc.GetAsBitmap()
|
||||||
|
image.SaveFile(next_filename(), wx.BITMAP_TYPE_JPEG)
|
||||||
|
|
||||||
|
size = self.GetSize()
|
||||||
|
self.button_exit = wx.Button(self, id=-1, label='Exit',
|
||||||
|
pos=(size[0]-125, size[1]-75),
|
||||||
|
size=(100, 50))
|
||||||
|
self.button_exit.Bind(wx.EVT_BUTTON, self.button_exit_handle)
|
||||||
|
self.button_exit.SetToolTip(wx.ToolTip("Click to exit"))
|
||||||
|
|
||||||
|
self.button_clear = wx.Button(self, id=-1, label='Clear',
|
||||||
|
pos=(size[0]-125, 25),
|
||||||
|
size=(100, 50))
|
||||||
|
self.button_clear.Bind(wx.EVT_BUTTON, self.button_clear_handle)
|
||||||
|
self.button_clear.SetToolTip(wx.ToolTip("Click to clear"))
|
||||||
|
|
||||||
|
self.button_save = wx.Button(self, id=-1, label='Save',
|
||||||
|
pos=(size[0]-250, 25),
|
||||||
|
size=(100, 50))
|
||||||
|
self.button_save.Bind(wx.EVT_BUTTON, self.button_save_handle)
|
||||||
|
self.button_save.SetToolTip(wx.ToolTip("Click to save"))
|
||||||
|
|
||||||
def onLeftDown(self, event):
|
def onLeftDown(self, event):
|
||||||
# draw line
|
# draw line
|
||||||
self.currentLine = []
|
self.currentLine = []
|
||||||
@ -151,6 +204,7 @@ class PaintWindow(wx.Window):
|
|||||||
|
|
||||||
self.button_exit.Destroy()
|
self.button_exit.Destroy()
|
||||||
self.button_clear.Destroy()
|
self.button_clear.Destroy()
|
||||||
|
self.button_save.Destroy()
|
||||||
|
|
||||||
def onLeftUp(self, event):
|
def onLeftUp(self, event):
|
||||||
# close motion, stop drawing, wait for event
|
# close motion, stop drawing, wait for event
|
||||||
@ -173,6 +227,12 @@ class PaintWindow(wx.Window):
|
|||||||
self.button_clear.Bind(wx.EVT_BUTTON, self.button_clear_handle)
|
self.button_clear.Bind(wx.EVT_BUTTON, self.button_clear_handle)
|
||||||
self.button_clear.SetToolTip(wx.ToolTip("Click to clear"))
|
self.button_clear.SetToolTip(wx.ToolTip("Click to clear"))
|
||||||
|
|
||||||
|
self.button_save = wx.Button(self, id=-1, label='Save',
|
||||||
|
pos=(size[0]-250, 25),
|
||||||
|
size=(100, 50))
|
||||||
|
self.button_save.Bind(wx.EVT_BUTTON, self.button_save_handle)
|
||||||
|
self.button_save.SetToolTip(wx.ToolTip("Click to save"))
|
||||||
|
|
||||||
def onKeyPress(self, event):
|
def onKeyPress(self, event):
|
||||||
# If q key is pressed, exit
|
# If q key is pressed, exit
|
||||||
keycode = event.GetKeyCode()
|
keycode = event.GetKeyCode()
|
||||||
|
Loading…
Reference in New Issue
Block a user