Esempio n. 1
0
    def saveWifiPicture(self):
        qrCodeValue = 'WIFI:S:{};T:{};P:{};;'.format(
            self.wifiSSIDValue.text(), self.wifiProtocolValue.text(),
            self.wifiPasswordValue.text())
        qr_code = qrcode.make(qrCodeValue)
        img = Image.new("RGB", (qr_code.pixel_size, qr_code.pixel_size),
                        "white")
        img.paste(qr_code, (0, 0))

        fontSize = 20
        myFont = ImageFont.truetype(CfgService.get(CfgKey.WIFI_QR_CODE_FONT),
                                    fontSize)

        title = ImageDraw.Draw(img)
        title.text(
            (10, 10),
            textValue[TextKey.QR_CODE_WIFI_NAME] + self.wifiSSIDValue.text(),
            font=myFont,
            fill=(0, 0, 0))

        password = ImageDraw.Draw(img)
        password.text((10, qr_code.pixel_size - 10 - fontSize),
                      textValue[TextKey.QR_CODE_WIFI_PASSWORD] +
                      self.wifiPasswordValue.text(),
                      font=myFont,
                      fill=(0, 0, 0))
        img.save(self.mainSaveDirLabel.text() + "/" +
                 CfgService.get(CfgKey.WIFI_PICTURE_NAME))
Esempio n. 2
0
 def getTempPicturePath():
     folder = os.path.join(ShottedPictureService._getSaveFolder(),
                           CfgService.get(CfgKey.RAW_PICTURE_SUB_DIR))
     FileFolderService.createFolderIfNotExist(folder)
     relativPath = os.path.join(
         folder, "temp" + CfgService.get(CfgKey.PICTURE_FORMAT))
     return FileFolderService.getAbsoltPath(relativPath)
Esempio n. 3
0
    def getPrinterStatus(self):
        printer = self._findPrinterByString(
            CfgService.get(CfgKey.PRINTER_SELECTED))
        # Toner alle: marker-supply-empty-error
        # Fach vergessen einzufügen: input-tray-missing
        # Papier fehlt: media-empty-error
        if CfgService.get(CfgKey.PRINTER_IS_ACTIVE) and printer != None:
            printerStates = self.conn.getPrinterAttributes(
                printer)["printer-state-reasons"]
            errorMessages = []
            for printerState in printerStates:
                if str(printerState).find("input-tray-missing") >= 0:
                    errorMessages.append(textValue[
                        TextKey.PRINT_SERVICE_MISSING_PAPER_CONTAINER])
                elif str(printerState).find("media-empty-error") >= 0:
                    errorMessages.append(
                        textValue[TextKey.PRINT_SERVICE_EMPTY_PAPER])
                elif str(printerState).find("marker-supply-empty-error") >= 0:
                    errorMessages.append(
                        textValue[TextKey.PRINT_SERVICE_EMPTY_INK])
                elif str(printerState).find("error") >= 0:
                    errorMessages.append(
                        textValue[TextKey.PRINT_SERVICE_ERROR])

            if len(errorMessages) > 0:
                errorMessages.append(
                    textValue[TextKey.PRINT_SERVICE_ERROR_INSTRUCTION])
                return " | ".join(errorMessages)
            else:
                return textValue[TextKey.PRINT_SERVICE_PRINTER_READY]
        else:
            return textValue[
                TextKey.PRINT_SERVICE_PRINTER_NOT_EXIST] + " | " + textValue[
                    TextKey.PRINT_SERVICE_ERROR_INSTRUCTION]
Esempio n. 4
0
 def __getBackgroundPicturePath(self):
     directories = os.listdir(
         CfgService.get(CfgKey.PAGE_TITLEPICTURE_BUTTON_IMAGE_FOLDER))
     numberPictures = len(directories)
     pictureIndex = random.randint(0, numberPictures - 1)
     return CfgService.get(CfgKey.PAGE_TITLEPICTURE_BUTTON_IMAGE_FOLDER
                           ) + "/" + directories[pictureIndex]
Esempio n. 5
0
    def run(self):
        resolution = CfgService.get(CfgKey.PI_CAMERA_VIDEO_RESOLUTION)
        camera = PiCamera()
        camera.resolution = resolution
        camera.framerate = CfgService.get(CfgKey.PI_CAMERA_VIDEO_FPS)
        rawCapture = PiRGBArray(camera, size=resolution)
        time.sleep(0.1)

        for frame in camera.capture_continuous(rawCapture,
                                               format="bgr",
                                               use_video_port=True):
            if (self.run == False):
                break
            frameArray = frame.array
            self.updatePixel(frame.array)
            if not self.background is None:
                frameArray = GreenscreenReplaceBackgroundService(
                    self.globalVariable).replaceBackground(
                        frameArray, self.background)
            rgbImage = cv2.cvtColor(frameArray, cv2.COLOR_BGR2RGB)
            h, w, ch = rgbImage.shape
            bytesPerLine = ch * w
            convertToQtFormat = QImage(rgbImage.data, w, h, bytesPerLine,
                                       QImage.Format_RGB888)
            p = convertToQtFormat.scaled(self.img_dimensions.width(),
                                         self.img_dimensions.height(),
                                         Qt.KeepAspectRatio)
            self.changePixmap.emit(p)
            rawCapture.truncate(0)
        camera.close()
        cv2.destroyAllWindows()
Esempio n. 6
0
def indexPage():

    dbResults = ServerDbSevice.getPictureNames()
    picturePageUrl = []
    if CfgService.get(CfgKey.SERVER_INDEX_PAGE_SHOW_ALL_PICTURES):
        for dbResult in dbResults:
            picturePageUrl.append(CfgService.get(CfgKey.SERVER_DOWNLOAD_PICTURE_PAGE)+"/"+dbResult)
    return render_template('index/index.html',len = len(picturePageUrl), picturePageUrl = picturePageUrl)
Esempio n. 7
0
 def getRandomPicture(self):
     directories = os.listdir(
         CfgService.get(CfgKey.PAGE_CAPTUREPHOTO_LAST_IMAGE_FOLDER))
     numberPictures = len(directories)
     pictureIndex = random.randint(0, numberPictures - 1)
     return QPixmap(
         CfgService.get(CfgKey.PAGE_CAPTUREPHOTO_LAST_IMAGE_FOLDER) + "/" +
         directories[pictureIndex])
Esempio n. 8
0
 def updateUiPrintingPossible(self):
     if not self.printerService.printingPosible():
         CfgService.set(CfgKey.PRINTER_IS_ACTIVE, False)
         self.printerDisabledButton.setText(
             textValue[TextKey.PAGE_CONFIG_INAKTIVATE])
         self.printerDisabledButton.setChecked(
             CfgService.get(CfgKey.PRINTER_IS_ACTIVE))
         self.printerDisabledButton.setDisabled(True)
Esempio n. 9
0
 def showPrinterButtonIfActivated(self):
     printerIsActiv = CfgService.get(CfgKey.PRINTER_IS_ACTIVE)
     if not printerIsActiv:
         self.printButton.setDisabled(True)
         self.printButton.setStyleSheet(
             "qproperty-icon: url(" + CfgService.get(
                 CfgKey.PAGE_PICTUREEDIT_PRINT_BUTTON_DISABLED_ICON_DIR) +
             ");")
Esempio n. 10
0
 def _negTextFieldEvent(self):
     hAsString = self.negHTextField.text()
     sAsString = self.negSTextField.text()
     vAsString = self.negVTextField.text()
     if len(hAsString) > 0 and len(sAsString) > 0 and len(vAsString) > 0:
         h = max(min(int(hAsString),179),0)
         s = max(min(int(sAsString),255),0)
         v = max(min(int(vAsString),255),0)
         CfgService.setIntList(CfgKey.GREENSCREEN_MIN_HSV_CV2_COLOR,[h,s,v])
Esempio n. 11
0
 def setStartButtonStyle(self):
     styling = "border-image : url(" + self.__getBackgroundPicturePath(
     ) + ");"
     if CfgService.get(CfgKey.PAGE_TITLEPICTURE_BACKGROUND_IMAGE) != None:
         styling += " background-color: transparent;"
     else:
         styling += "background-color: " + CfgService.get(
             CfgKey.PAGE_TITLEPICTURE_BUTTON_BACKGROUND_COLOR) + ";"
     self.startButton.setStyleSheet(styling)
Esempio n. 12
0
    def __init__(self):

        try:
            self.conn = cups.Connection()
            self.printers = self.conn.getPrinters()
            cups.setUser(getpass.getuser())
        except:
            print("Drucker konnte nicht intitialisiert werden.")
            self.printers = {}
            CfgService.set(CfgKey.PRINTER_IS_ACTIVE, False)
Esempio n. 13
0
 def getCounterImage(self, number: int):
     directories = os.listdir(
         CfgService.get(CfgKey.PAGE_CAMERAPREVIEW_COUNDOWN_IMAGE_FOLDER))
     for file in directories:
         if file.endswith(str(number) + ".png"):
             return QPixmap(
                 CfgService.get(
                     CfgKey.PAGE_CAMERAPREVIEW_COUNDOWN_IMAGE_FOLDER) +
                 "/" + file)
     return None
 def _loadBackgroundImages(self,picturePath,isCustom:bool,rotateAngle:int=0):
     videoBackground = self._cutPicture(picturePath,CfgService.get(CfgKey.PI_CAMERA_VIDEO_RESOLUTION),rotateAngle)
     pictureBackground = self._cutPicture(picturePath,CfgService.get(CfgKey.PI_CAMERA_PHOTO_RESOLUTION),rotateAngle)
     previewPath = self._savePreview(pictureBackground,picturePath,isCustom)
     return {GreenscreenBackgroundService.PICTURE_PATH_KEY:picturePath,
             GreenscreenBackgroundService.PICTURE_PREVIEW_PATH_KEY:previewPath,
             GreenscreenBackgroundService.VIDEO_KEY:videoBackground,
             GreenscreenBackgroundService.PICTURE_KEY:pictureBackground,
             GreenscreenBackgroundService.IS_CUSTOM:isCustom,
             GreenscreenBackgroundService.ROTATE_ANGLE:rotateAngle}
Esempio n. 15
0
 def updateGreenscreenColor(self):
     averageGreenscreenQColor = CfgService.getColor(
         CfgKey.GREENSCREEN_AVERAGE_HSV_GUI_COLOR)
     averageGreenscreenCv2ColorText = CfgService.getIntList(
         CfgKey.GREENSCREEN_AVERAGE_HSV_CV2_COLOR)
     self.averageColorLabel.setText(str(averageGreenscreenCv2ColorText))
     self.averageColorLabel.setStyleSheet(
         "background-color:rgb(" +
         str(averageGreenscreenQColor.getRgb()[0]) + "," +
         str(averageGreenscreenQColor.getRgb()[1]) + "," +
         str(averageGreenscreenQColor.getRgb()[2]) + ")")
Esempio n. 16
0
def downloadPicturePage(pictureName):
    ids = ServerDbSevice.getPictureUrlIds(pictureName)
    if not ids:
        abort(404)
    else:
        printerService = PrinterService()
        pictureData = []
        allowedPrinting = printerService.printingPosible() and  CfgService.get(CfgKey.PRINTER_IS_ACTIVE) and CfgService.get(CfgKey.PRINTER_IS_ACTIVE_WEB) and not printerService.hasTooManyPrintingOrderWeb(pictureName)
        for id in ids:
            printUrl = CfgService.get(CfgKey.SERVER_PRINT_PICTURE_PAGE)+"/"+pictureName+"/"+id
            pictureData.append([CfgService.get(CfgKey.SERVER_DOWNLOAD_PICTURE)+"/"+id,printUrl,allowedPrinting])
        return render_template('picture/download.html',name=pictureName, len = len(pictureData), pictureData = pictureData)
Esempio n. 17
0
 def deleteFunnyPictureFolder(self):
     self.disableAllButtons()
     FileFolderService.removeIfExist(
         CfgService.get(CfgKey.PAGE_CAPTUREPHOTO_LAST_IMAGE_FOLDER))
     FileFolderService.removeIfExist(
         CfgService.get(
             CfgKey.
             PAGE_SYSTEMPICTUREMANAGER_FUNNY_PICTURE_SOURCE_SUCCESS_DOWNLOAD
         ))
     self.enableAllButtons()
     self.funnyDeleteButton.setText(
         textValue[TextKey.PAGE_SYSTEMPICTUREMANAGER_SUCCESSFULL])
Esempio n. 18
0
 def deleteLoadingGifFolder(self):
     self.disableAllButtons()
     FileFolderService.removeIfExist(
         CfgService.get(CfgKey.PAGE_CAPTUREPHOTO_LOADING_GIF_FOLDER))
     FileFolderService.removeIfExist(
         CfgService.get(
             CfgKey.
             PAGE_SYSTEMPICTUREMANAGER_LOADINGGIFS_PICTURE_SOURCE_SUCCESS_DOWNLOAD
         ))
     self.enableAllButtons()
     self.loadingGifDeleteButton.setText(
         textValue[TextKey.PAGE_SYSTEMPICTUREMANAGER_SUCCESSFULL])
Esempio n. 19
0
    def executeBefore(self):
        posToleranceValues = CfgService.getIntList(CfgKey.GREENSCREEN_MAX_HSV_CV2_COLOR)
        self.posHTextField.setText(str(posToleranceValues[0]))
        self.posSTextField.setText(str(posToleranceValues[1]))
        self.posVTextField.setText(str(posToleranceValues[2]))
        negToleranceValues = CfgService.getIntList(CfgKey.GREENSCREEN_MIN_HSV_CV2_COLOR)
        self.negHTextField.setText(str(negToleranceValues[0]))
        self.negSTextField.setText(str(negToleranceValues[1]))
        self.negVTextField.setText(str(negToleranceValues[2]))

        self.minMaxStore = [negToleranceValues,posToleranceValues]
        background = GreenscreenBackgroundService(self.globalVariable).getBlackBackgroundAsHsv(CfgService.get(CfgKey.PI_CAMERA_VIDEO_RESOLUTION))
        self.videoThread = CameraService.initialAndStartVideo(QSize(self.windowSize.width()/2,self.windowSize.height()/2),self.globalVariable,self.setVideoStreamToLabel,background,self.setHsvPixelToLabel)
Esempio n. 20
0
 def getRandomGif(self):
     directories = os.listdir(
         CfgService.get(CfgKey.PAGE_CAPTUREPHOTO_LOADING_GIF_FOLDER))
     numberPictures = len(directories)
     pictureIndex = random.randint(0, numberPictures - 1)
     gif = QMovie(
         CfgService.get(CfgKey.PAGE_CAPTUREPHOTO_LOADING_GIF_FOLDER) + "/" +
         directories[pictureIndex])
     gifSize = gif.scaledSize()
     gifScaleFactor = self.windowSize.height() / gifSize.height()
     gif.setScaledSize(
         QSize(gifSize.width() * gifScaleFactor,
               gifSize.height() * gifScaleFactor))
     return gif
Esempio n. 21
0
def getRandomPictureUris():
    if not CfgService.get(CfgKey.DIASHOW_CLIENT_IS_ACTIVE):
        return base64.b64encode("".encode('utf-8'))

    numberOfPictures = ServerDbSevice.getNumberUsedPictures()
    if numberOfPictures <= CfgService.get(CfgKey.SERVER_GETPICTUREURLIDS_THRASHOLD):
        return base64.b64encode("".encode('utf-8'))

    pictureUrlIds = ServerDbSevice.getRendomPictureUrlIds(CfgService.get(CfgKey.SERVER_GETPICTUREURLIDS_NUMBER))
    pictureUrlsAsString = ""

    for urlId in pictureUrlIds:
        url = "http://"+CfgService.get(CfgKey.SERVER_IP)+":"+CfgService.get(CfgKey.SERVER_PORT)+CfgService.get(CfgKey.SERVER_DOWNLOAD_PICTURE)+"/"+urlId
        pictureUrlsAsString += url +";"
    return base64.b64encode(pictureUrlsAsString.encode('utf-8'))
Esempio n. 22
0
 def _savePicture(targetFolder, fileName):
     sourceFile = ShottedPictureService.getTempPicturePath()
     targetPath = os.path.join(
         targetFolder, fileName + CfgService.get(CfgKey.PICTURE_FORMAT))
     unicTargetPath = ShottedPictureService._getUnicFileName(targetPath)
     FileFolderService.moveFile(sourceFile, unicTargetPath)
     return FileFolderService.getAbsoltPath(unicTargetPath)
 def _getPictureButtonsSize(self):
     piCameraResolution = CfgService.get(CfgKey.PI_CAMERA_PHOTO_RESOLUTION)
     height = self.getContentHeightWithNavigationButtonAndTitle()
     cameraHeight = piCameraResolution[1]
     camerawidth = piCameraResolution[0]
     width = height * camerawidth / cameraHeight
     return QSize(width, height)
 def replaceBackground(self, frame, background=None):
     if background is None:
         background = GreenscreenBackgroundService(
             self.globalVariable).getBackgroundAsHsv(
                 GreenscreenBackgroundService.PICTURE_KEY,
                 CfgService.get(CfgKey.PI_CAMERA_PHOTO_RESOLUTION))
     return self._replaceBackgroud(frame, background)
Esempio n. 25
0
    def _scannImageForProperties(self, image):
        self.greenscreenColorRangeService.scanImage(image)

        hueDiverence = self.greenscreenColorRangeService.getMaxHSV(
        )[0] - self.greenscreenColorRangeService.getMinHSV()[0]
        self._setHint(hueDiverence > CfgService.get(
            CfgKey.GREENSCREEN_MAX_COLOR_RANGE_HINT))

        self._setColorLabelText(self.minColorLabel,
                                self.greenscreenColorRangeService.getMinHSV(),
                                "Min:")
        self._updateMonitoringLabel(
            self.minColorLabel,
            self.greenscreenColorRangeService.getMinQColor())

        self._setColorLabelText(self.maxColorLabel,
                                self.greenscreenColorRangeService.getMaxHSV(),
                                "Max:")
        self._updateMonitoringLabel(
            self.maxColorLabel,
            self.greenscreenColorRangeService.getMaxQColor())

        self._setColorLabelText(
            self.averageColorLabel,
            self.greenscreenColorRangeService.getAverageHSV(), "Ø:")
        self._updateMonitoringLabel(
            self.averageColorLabel,
            self.greenscreenColorRangeService.getAverageQColor())
 def executeBefore(self):
     if not CfgService.get(CfgKey.GREENSCREEN_IS_ACTIVE):
         self.nextPageEvent()
     else:
         self.currentBackgroundImageIndex = 0
         self._navigationBackgroundButtonStatus()
         self._setBrackgroundPreview()
         self._updateTitle()
Esempio n. 27
0
    def __init__(self, pages: AllPages, windowSize: QSize):
        super().__init__(pages, windowSize)
        vbox = QVBoxLayout()
        vbox.setContentsMargins(0, 0, 0, 0)
        self.setLayout(vbox)
        if CfgService.get(CfgKey.PAGE_TITLEPICTURE_BACKGROUND_IMAGE) != None:
            self.setStyleSheet(
                "background-image: url('" +
                CfgService.get(CfgKey.PAGE_TITLEPICTURE_BACKGROUND_IMAGE) +
                "');")

        #Startbutton
        self.startButton = QPushButton()
        self.startButton.setSizePolicy(QSizePolicy.Expanding,
                                       QSizePolicy.Expanding)
        self.startButton.clicked.connect(self.nextPageEvent)
        vbox.addWidget(self.startButton)
Esempio n. 28
0
 def updateGreenscreenActive(self):
     isGreenscreenActivate = CfgService.get(CfgKey.GREENSCREEN_IS_ACTIVE)
     self.greenscreenDisabledButton.setChecked(isGreenscreenActivate)
     if isGreenscreenActivate:
         self.greenscreenDisabledButton.setText(
             textValue[TextKey.PAGE_CONFIG_AKTIVATE])
     else:
         self.greenscreenDisabledButton.setText(
             textValue[TextKey.PAGE_CONFIG_INAKTIVATE])
Esempio n. 29
0
def getPrintStatusHint(pictureName):
    printerService = PrinterService()
    if printerService.isStatusInPrintWeb(pictureName):
        return textValue[TextKey.WEB_PRINT_STATUS_IN_PRINTING]
    else:
        if printerService.hasTooManyPrintingOrderWeb(pictureName):
            return textValue[TextKey.WEB_PRINT_STATUS_NO_MORE_COPY]
        else:
            return textValue[TextKey.WEB_PRINT_STATUS_READY] % CfgService.get(CfgKey.PRINTER_MAX_PRINTING_ORDER)
Esempio n. 30
0
def downloadPicture(urlId):
    picturePathAndName = ServerDbSevice.getPicturePathAndName(urlId)
    if not picturePathAndName:
        abort(404)
    else :
        imageAsByte = FileFolderService.readImage(picturePathAndName[1])
        return send_file(io.BytesIO(imageAsByte),
                         as_attachment=True,
                         attachment_filename=CfgService.get(CfgKey.PROJECTNAME)+"_"+picturePathAndName[0]+'.png',
                         mimetype='image/png')