def post_processing(self): cw = self.customWidget ui_setting = self.ui_setting format = self._format if cw is not None and format is not None: try: dither = ui_setting.checkDither.isChecked() quality = ui_setting.ugoira_quality.value() except Exception as e: print(e) dither = True quality = 90 imgs_ugoira = [] for img in self.imgs: if img.url not in cw.urls: continue if img.type == 'ugoira': if os.path.splitext(img.url)[1].lower() == '.zip': imgs_ugoira.append(img) for j, img in enumerate(imgs_ugoira): if not cw.valid or not cw.alive: return self.exec_queue.put( (cw, (u'customWidget.pbar.setFormat(u"[%v/%m] {} [{}/{}]")' ).format(tr_(u'움짤 변환...'), j, len(imgs_ugoira)))) filename = os.path.join(self.dir, img.filename) out = os.path.splitext(filename)[0] + '.' + format cw.print_((u'convert ugoira: {} --> {}').format(filename, out)) try: duration = [ frame.delay for frame in img.ugoira_data.frames ] self.print_((u'Duration: {}').format(duration)) ffmpeg.gif(filename, out, duration=duration, dither=dither, quality=quality, cw=cw) except Exception as e: self.print_(print_error(e)[0]) continue if not cw.valid or not cw.alive: return try: self.removeDirList.append((filename, False)) cw.dones.add(out) i = cw.urls.index(img.url) cw.imgs[i] = out if i == 0: cw.firstImg = out cw.setIcon(out) except Exception as e: return self.Invalid(e=e) self.exec_queue.put( (cw, u'customWidget.pbar.setFormat("[%v/%m]")'))
def pp(self, filename): if self.ugoira and self.ugoira['ext'] and not self.local: if utils.ui_setting: dither = utils.ui_setting.checkDither.isChecked() quality = utils.ui_setting.ugoira_quality.value() else: dither = True quality = 90 filename_new = '{}{}'.format(os.path.splitext(filename)[0], self.ugoira['ext']) ffmpeg.gif(filename, filename_new, self.ugoira['delay'], dither=dither, quality=quality, cw=self.cw) utils.removeDirList.append((filename, False)) return filename_new