Commit f9fcdd12 authored by dmMaze's avatar dmMaze
Browse files

support saving results/intermediates as JXL

parent 3bf11323
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -136,7 +136,7 @@ def main():
    APP_DIR = os.path.dirname(os.path.abspath(__file__))
    os.chdir(APP_DIR)

    # prepare_environment()
    prepare_environment()

    from utils.zluda_config import enable_zluda_config
    enable_zluda_config()
+1 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ httpx[socks,brotli]
langdetect
translators==5.9.5
json5
pillow-jxl-plugin
pywin32; sys_platform == 'win32'
winsdk; sys_platform == 'win32'
brotlicffi; sys_platform == 'win32'
+9 −1
Original line number Diff line number Diff line
@@ -463,16 +463,20 @@ class ConfigPanel(Widget):
        self.let_show_only_custom_fonts.stateChanged.connect(self.on_show_only_custom_fonts)

        generalConfigPanel.addTextLabel(label_save)
        self.rst_imgformat_combobox, imsave_sublock = generalConfigPanel.addCombobox(['PNG', 'JPG', 'WEBP'], self.tr('Result image format'))
        self.rst_imgformat_combobox, imsave_sublock = generalConfigPanel.addCombobox(['PNG', 'JPG', 'WEBP', 'JXL'], self.tr('Result image format'))
        self.rst_imgformat_combobox.activated.connect(self.on_rst_imgformat_changed)
        self.rst_imgquality_edit = PercentageLineEdit('100')
        self.rst_imgquality_edit.setFixedWidth(CONFIG_COMBOBOX_SHORT)
        self.rst_imgquality_edit.finish_edited.connect(self.on_edit_quality_changed)

        sublock = ConfigSubBlock(self.rst_imgquality_edit, self.tr('Quality'), vertical_layout=False)
        sublock.layout().setAlignment(Qt.AlignmentFlag.AlignLeft)
        sublock.layout().insertStretch(-1)
        imsave_sublock.layout().addWidget(sublock)

        self.intermediate_imgformat_combobox, intermediate_imsave_sublock = generalConfigPanel.addCombobox(['PNG', 'JXL'], self.tr('Intermediate image format'))
        self.intermediate_imgformat_combobox.activated.connect(self.on_intermediate_imgformat_changed)

        generalConfigPanel.addTextLabel(label_saladict)

        sublock = ConfigSubBlock(ConfigTextLabel(self.tr("<a href=\"https://github.com/dmMaze/BallonsTranslator/tree/master/doc/saladict.md\">Installation guide</a>"), CONFIG_FONTSIZE_CONTENT - 2), vertical_layout=False)
@@ -552,6 +556,9 @@ class ConfigPanel(Widget):
    def on_rst_imgformat_changed(self):
        pcfg.imgsave_ext = '.' + self.rst_imgformat_combobox.currentText().lower()

    def on_intermediate_imgformat_changed(self):
        pcfg.intermediate_imgsave_ext = '.' + self.intermediate_imgformat_combobox.currentText().lower()

    def on_edit_quality_changed(self, value: str):
        pcfg.imgsave_quality = int(value)

@@ -636,6 +643,7 @@ class ConfigPanel(Widget):
        self.searchurl_combobox.setCurrentText(pcfg.search_url)
        self.ocr_config_panel.restoreEmptyOCRChecker.setChecked(pcfg.restore_ocr_empty)
        self.rst_imgformat_combobox.setCurrentText(pcfg.imgsave_ext.replace('.', '').upper())
        self.intermediate_imgformat_combobox.setCurrentText(pcfg.intermediate_imgsave_ext.replace('.', '').upper())
        self.rst_imgquality_edit.setText(str(pcfg.imgsave_quality))
        self.load_model_checker.setChecked(pcfg.module.load_model_on_demand)
        self.empty_runcache_checker.setChecked(pcfg.module.empty_runcache)
+14 −0
Original line number Diff line number Diff line
@@ -64,6 +64,20 @@ class ImgSaveThread(ThreadBase):
            self.img_writed.emit(pagename_in_proj)
            self.im_save_list.pop(0)

    def on_exec_failed(self):
        if len(self.im_save_list) > 0:
            self.im_save_list.pop(0)
            if len(self.im_save_list) == 0:
                self.job = None
            else:
                try:
                    self.job()
                except Exception as e:
                    self.on_exec_failed()
                    create_error_dialog(e, self._thread_error_msg, self._thread_exception_type)




class ImgTransProjFileIOThread(ThreadBase):

+2 −2
Original line number Diff line number Diff line
@@ -917,7 +917,7 @@ class MainWindow(mainwindow_cls):
            if not save_rst_only:
                mask_path = self.imgtrans_proj.get_mask_path()
                mask_array = self.imgtrans_proj.mask_array
                self.imsave_thread.saveImg(mask_path, mask_array)
                self.imsave_thread.saveImg(mask_path, mask_array, save_params={'ext': pcfg.intermediate_imgsave_ext})
                inpainted_path = self.imgtrans_proj.get_inpainted_path()
                if self.canvas.drawingLayer.drawed():
                    inpainted = self.canvas.base_pixmap.copy()
@@ -926,7 +926,7 @@ class MainWindow(mainwindow_cls):
                    painter.end()
                else:
                    inpainted = self.imgtrans_proj.inpainted_array
                self.imsave_thread.saveImg(inpainted_path, inpainted)
                self.imsave_thread.saveImg(inpainted_path, inpainted, save_params={'ext': pcfg.intermediate_imgsave_ext})

        img = self.canvas.render_result_img()
        imsave_path = self.imgtrans_proj.get_result_path(self.imgtrans_proj.current_img)
Loading