Пример #1
0
    def genMp4(self):
        msg = QMessageBox()
        ffmpegPath = os.path.join(os.path.dirname(__file__), 'ffmpeg.exe')

        lapse = int(self.dlg.timeLapseEdit.text())
        cmd = (
            ffmpegPath + ' -r' + ' 1/' + str(lapse) + ' -start_number' + ' 0' +
            ' -i ' + toUnicode(os.path.join(
                self.workingFolder, '%03d.png')).encode('big5') + ' -c:v' +
            ' libx264' + ' -r' + ' 30' + ' -pix_fmt' + ' yuv420p ' + toUnicode(
                os.path.join(self.workingFolder,
                             self.dlg.outputNameEdit.text())).encode('big5') +
            '.mp4')
        subprocess.Popen([
            'cmd', '/c', 'del',
            toUnicode(
                os.path.join(self.workingFolder,
                             self.dlg.outputNameEdit.text())).encode('big5') +
            '.mp4'
        ])
        t = subprocess.call(cmd, shell=True)
        if t == 0:
            msg.setIcon(QMessageBox.Information)
            msg.setText(message['msg05'])
            msg.setWindowTitle(message['msg06'])
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec_()
        elif t == 1:
            msg.setIcon(QMessageBox.Critical)
            msg.setText(message['msg07'])
            msg.setWindowTitle(message['msg08'])
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec_()
Пример #2
0
    def genGif(self):
        msg = QMessageBox()
        try:
            reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
            k = _winreg.OpenKey(reg, r'SOFTWARE\ImageMagick\Current')
            pathName = os.path.join(
                _winreg.QueryValueEx(k, 'BinPath')[0], 'magick.exe')
        except (WindowsError):
            msg.setIcon(QMessageBox.Critical)
            msg = message['msg01']
            msg.setWindowTitle(message['msg02'])
            msg.setText(message)
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec_()

            return None

        lapse = int(self.dlg.timeLapseEdit.text())
        cmd = [
            'cmd', '/c',
            toUnicode(pathName).encode('big5'), 'convert', '-loop', '0',
            '-delay',
            str(lapse) + 'x1'
        ]
        for path in self.renderedLayerList:
            cmd.append(path)

        outName = self.dlg.outputNameEdit.text() + '.gif'

        cmd.append(
            toUnicode(os.path.join(self.workingFolder,
                                   outName)).encode('big5'))
        subprocess.call(cmd, shell=True)
        msg.setIcon(QMessageBox.Information)
        msg.setText(message['msg03'])
        msg.setWindowTitle(message['msg04'])
        msg.setStandardButtons(QMessageBox.Ok)
        msg.exec_()