35 lines
984 B
Python
35 lines
984 B
Python
#!/usr/bin/env python3
|
|
"""
|
|
Worker thread for image processing.
|
|
"""
|
|
|
|
from PyQt5.QtCore import QThread, pyqtSignal
|
|
import traceback
|
|
|
|
try:
|
|
from image_postprocess import process_image
|
|
except Exception:
|
|
process_image = None
|
|
IMPORT_ERROR = "Could not import process_image module"
|
|
else:
|
|
IMPORT_ERROR = None
|
|
|
|
class Worker(QThread):
|
|
finished = pyqtSignal(str)
|
|
error = pyqtSignal(str, str) # error message + traceback
|
|
|
|
def __init__(self, inpath, outpath, args):
|
|
super().__init__()
|
|
self.inpath = inpath
|
|
self.outpath = outpath
|
|
self.args = args
|
|
|
|
def run(self):
|
|
try:
|
|
if process_image is None:
|
|
raise RuntimeError("Could not import process_image: " + (IMPORT_ERROR or "unknown"))
|
|
process_image(self.inpath, self.outpath, self.args)
|
|
self.finished.emit(self.outpath)
|
|
except Exception as e:
|
|
tb = traceback.format_exc()
|
|
self.error.emit(str(e), tb) |