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_()
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_()