chiark / gitweb /
Added webcam overlay to show which software and printer created the timelaps.
authordaid303 <daid303@gmail.com>
Fri, 5 Oct 2012 10:25:31 +0000 (12:25 +0200)
committerdaid303 <daid303@gmail.com>
Fri, 5 Oct 2012 10:25:31 +0000 (12:25 +0200)
Cura/gui/webcam.py
Cura/images/cura-overlay.png [new file with mode: 0644]
Cura/images/ultimaker-overlay.png [new file with mode: 0644]

index d4fe69c573c122acd87c7418dcb79c03ec6e514b..a7043729b5e05c34250267c4cc62e8e87cde0e71 100644 (file)
@@ -1,6 +1,9 @@
 import os, glob, subprocess, platform\r
 import wx\r
 \r
+from util import profile\r
+from gui import toolbarUtil\r
+\r
 try:\r
        #Try to find the OpenCV library for video capture.\r
        from opencv import cv\r
@@ -33,6 +36,8 @@ def getFFMPEGpath():
 class webcam(object):\r
        def __init__(self):\r
                self._cam = None\r
+               self._overlayImage = toolbarUtil.getBitmapImage("cura-overlay.png")\r
+               self._overlayUltimaker = toolbarUtil.getBitmapImage("ultimaker-overlay.png")\r
                if cv != None:\r
                        self._cam = highgui.cvCreateCameraCapture(-1)\r
                elif win32vidcap != None:\r
@@ -77,7 +82,7 @@ class webcam(object):
                if cv != None:\r
                        frame = cv.QueryFrame(self._cam)\r
                        cv.CvtColor(frame, frame, cv.CV_BGR2RGB)\r
-                       self._bitmap = wx.BitmapFromBuffer(frame.width, frame.height, frame.imageData)\r
+                       bitmap = wx.BitmapFromBuffer(frame.width, frame.height, frame.imageData)\r
                elif win32vidcap != None:\r
                        buffer, width, height = self._cam.getbuffer()\r
                        try:\r
@@ -85,16 +90,25 @@ class webcam(object):
                                wxImage.SetData(buffer[::-1])\r
                                if self._bitmap != None:\r
                                        del self._bitmap\r
-                               self._bitmap = wxImage.ConvertToBitmap()\r
+                               bitmap = wxImage.ConvertToBitmap()\r
                                del wxImage\r
                                del buffer\r
                        except:\r
                                pass\r
 \r
+               dc = wx.MemoryDC()\r
+               dc.SelectObject(bitmap)\r
+               dc.DrawBitmap(self._overlayImage, bitmap.GetWidth() - self._overlayImage.GetWidth() - 5, 5, True)\r
+               if profile.getPreference('machine_type') == 'ultimaker':\r
+                       dc.DrawBitmap(self._overlayUltimaker, (bitmap.GetWidth() - self._overlayUltimaker.GetWidth()) / 2, bitmap.GetHeight() - self._overlayUltimaker.GetHeight() - 5, True)\r
+               dc.SelectObject(wx.NullBitmap)\r
+\r
+               self._bitmap = bitmap\r
+\r
                if self._doTimelaps:\r
                        filename = os.path.normpath(os.path.join(os.path.split(__file__)[0], "../__tmp_snap", "__tmp_snap_%04d.jpg" % (self._snapshotCount)))\r
                        self._snapshotCount += 1\r
-                       self._bitmap.SaveFile(filename, wx.BITMAP_TYPE_JPEG)\r
+                       bitmap.SaveFile(filename, wx.BITMAP_TYPE_JPEG)\r
 \r
                return self._bitmap\r
        \r
diff --git a/Cura/images/cura-overlay.png b/Cura/images/cura-overlay.png
new file mode 100644 (file)
index 0000000..a4638f7
Binary files /dev/null and b/Cura/images/cura-overlay.png differ
diff --git a/Cura/images/ultimaker-overlay.png b/Cura/images/ultimaker-overlay.png
new file mode 100644 (file)
index 0000000..422739d
Binary files /dev/null and b/Cura/images/ultimaker-overlay.png differ