diff --git a/README.md b/README.md index d619df8c..b44ba152 100644 --- a/README.md +++ b/README.md @@ -222,7 +222,7 @@ sudo apt-get install python3 p7zip-full python3-pil python3-psutil python3-slugi ``` 'K1': ("Kindle 1", (600, 670), Palette4, 1.0), 'K2': ("Kindle 2", (600, 670), Palette15, 1.0), - 'K11': ("Kindle 11", (1072, 1448), Palette16, 1.0), + 'K11': ("Kindle 11/2026", (1072, 1448), Palette16, 1.0), 'K34': ("Kindle Keyboard/Touch", (600, 800), Palette16, 1.0), 'K57': ("Kindle 5/7", (600, 800), Palette16, 1.0), 'K810': ("Kindle 8/10", (600, 800), Palette16, 1.0), @@ -231,7 +231,7 @@ sudo apt-get install python3 p7zip-full python3-pil python3-psutil python3-slugi 'KV': ("Kindle Voyage", (1072, 1448), Palette16, 1.0), 'KPW34': ("Kindle Paperwhite 3/4", (1072, 1448), Palette16, 1.0), 'KPW5': ("Kindle Paperwhite 5/Signature Edition", (1236, 1648), Palette16, 1.0), - 'KPW6': ("Kindle Paperwhite 6", (1272, 1696), Palette16, 1.0), + 'KPW6': ("Kindle Paperwhite 6/2026", (1272, 1696), Palette16, 1.0), 'KO': ("Kindle Oasis 2/3", (1264, 1680), Palette16, 1.0), 'KCS': ("Kindle Colorsoft", (1272, 1696), Palette16, 1.0), 'KS1860': ("Kindle 1860", (1860, 1920), Palette16, 1.0), @@ -273,7 +273,9 @@ MANDATORY: MAIN: -p PROFILE, --profile PROFILE - Device profile (Available options: K1, K2, K34, K578, KDX, KPW, KPW5, KV, KO, K11, KS, KoMT, KoG, KoGHD, KoA, KoAHD, KoAH2O, KoAO, KoN, KoC, KoCC, KoL, KoLC, KoF, KoS, KoE) + Device profile (Available options: K1, K2, KDX, K34, K57, KPW, KV, KPW34, K810, KO, K11, KPW5, KPW6, KS1860, KS1920, + KS1240, KS1324, KS, KCS, KS3, KSCS, KoMT, KoG, KoGHD, KoA, KoAHD, KoAH2O, KoAO, KoN, KoC, KoCC, KoL, KoLC, KoF, KoS, KoE, + Rmk1, Rmk2, RmkPP, RmkPPMove, OTHER, 1072x1448, 1264x1680, 1404x1872, 1536x2048, 1650x2200, 1860x2480, 2400x3200) [Default=KV] -m, --manga-style Manga style (right-to-left reading and splitting) --lightnovel Only resize images and preserve original file structure. diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py index 22c6d412..0c1c7b89 100644 --- a/kindlecomicconverter/KCC_gui.py +++ b/kindlecomicconverter/KCC_gui.py @@ -47,6 +47,7 @@ from PIL.Image import Dither from .KCC_spread_label import LabelSpreadsDialog from .shared import HTMLStripper, sanitizeTrace, walkLevel +from .image import ProfileData from .comicarchive import SEVENZIP, TAR, available_archive_tools from .comic2ebook import OS_SORT_KEY, KF7_KINDLES, flattenTree, getWorkFolder, removeNonImages, sanitizeTree, detectKindleGen from . import __version__ @@ -1498,7 +1499,7 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow): GUI.easyLabel.hide() # default is Kindle Paperwhite 12th Gen - self.lastDevice = self.settings.value('lastDevice', 3, type=int) + self.lastDevice = self.settings.value('lastDevice', 4, type=int) self.currentFormat = self.settings.value('currentFormat', 0, type=int) self.startNumber = self.settings.value('startNumber', 0, type=int) @@ -1587,13 +1588,13 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow): "Kindle Scribe Colorsoft": { 'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 4, 'DefaultUpscale': False, 'ForceColor': True, 'Label': 'KSCS', }, - "Kindle 11": { + "Kindle 11/2026": { 'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0, 'DefaultUpscale': True, 'ForceColor': False, 'Label': 'K11', }, "Kindle Paperwhite 11": { 'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0, 'DefaultUpscale': True, 'ForceColor': False, 'Label': 'KPW5', }, - "Kindle Paperwhite 12": { + "Kindle Paperwhite 12/2026": { 'PVOptions': True, 'ForceExpert': False, 'DefaultFormat': 0, 'DefaultUpscale': True, 'ForceColor': False, 'Label': 'KPW6', }, "Kindle Colorsoft": { @@ -1649,26 +1650,28 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow): 'Label': 'KoS'}, "Kobo Elipsa": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 1, 'DefaultUpscale': True, 'ForceColor': False, 'Label': 'KoE'}, - "reMarkable 1": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 3, 'DefaultUpscale': True, 'ForceColor': False, + "reMarkable 1/2/Pure": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 4, 'DefaultUpscale': True, 'ForceColor': False, 'Label': 'Rmk1'}, - "reMarkable 2": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 3, 'DefaultUpscale': True, 'ForceColor': False, - 'Label': 'Rmk2'}, - "reMarkable Paper Pro": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 3, 'DefaultUpscale': True, 'ForceColor': True, + "reMarkable Paper Pro": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 4, 'DefaultUpscale': True, 'ForceColor': True, 'Label': 'RmkPP'}, - "reMarkable Paper Pro Move": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 3, 'DefaultUpscale': True, 'ForceColor': True, + "reMarkable Paper Pro Move": {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 4, 'DefaultUpscale': True, 'ForceColor': True, 'Label': 'RmkPPMove'}, - "Other": {'PVOptions': False, 'ForceExpert': True, 'DefaultFormat': 1, 'DefaultUpscale': False, 'ForceColor': False, + "Other": {'PVOptions': False, 'ForceExpert': True, 'DefaultFormat': 2, 'DefaultUpscale': False, 'ForceColor': False, 'Label': 'OTHER'}, } + + for s in ProfileData.FIXED_RES_STRINGS: + self.profiles[s] = {'PVOptions': False, 'ForceExpert': False, 'DefaultFormat': 2, 'DefaultUpscale': False, 'ForceColor': False, + 'Label': s} + profilesGUI = [ "Kindle Scribe Colorsoft", "Kindle Scribe 3", - "Kindle Colorsoft", - "Kindle Paperwhite 12", "Kindle Scribe 1/2", + "Kindle Colorsoft", + "Kindle Paperwhite 12/2026", "Kindle Paperwhite 11", - "Kindle 11", - "Kindle Oasis 9/10", + "Kindle 11/2026", "Separator", "Kobo Clara 2E/BW", "Kobo Clara Colour", @@ -1676,30 +1679,30 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow): "Kobo Libra 2", "Kobo Libra Colour", "Kobo Elipsa", - "Kobo Nia", "Separator", - "reMarkable 1", - "reMarkable 2", - "reMarkable Paper Pro", "reMarkable Paper Pro Move", + "reMarkable Paper Pro", + "reMarkable 1/2/Pure", "Separator", "Other", + *ProfileData.FIXED_RES_STRINGS, "Separator", - "Kindle 1324x1986", - "Kindle 1920x1920", - "Kindle 1860x1920", - "Kindle 1240x1860", - "Kindle 8/10", - "Kindle Oasis 8", "Kindle Paperwhite 7/10", - "Kindle Voyage", "Kindle Paperwhite 5/6", + "Kindle Oasis 9/10", + "Kindle Oasis 8", + "Kindle Voyage", + "Kindle 8/10", "Kindle 4/5/7", "Kindle Touch", "Kindle Keyboard", "Kindle DX", "Kindle 2", "Kindle 1", + "Kindle 1324x1986", + "Kindle 1920x1920", + "Kindle 1860x1920", + "Kindle 1240x1860", "Separator", "Kobo Aura", "Kobo Aura ONE", @@ -1711,6 +1714,7 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow): "Kobo Glo", "Kobo Libra H2O", "Kobo Mini/Touch", + "Kobo Nia", ] # 这些多为约定俗成的缩写,翻译时可保留原文 @@ -1798,7 +1802,7 @@ class KCCGUI(QObject, KCC_ui.Ui_mainWindow): self.modeChange(1) for profile in profilesGUI: - if profile == "Other": + if profile == "Other" or profile in ProfileData.FIXED_RES_STRINGS: GUI.deviceBox.addItem(self.icons.deviceOther, profile) elif profile == "Separator": GUI.deviceBox.insertSeparator(GUI.deviceBox.count() + 1) diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py index 28d88a22..9ad6472b 100755 --- a/kindlecomicconverter/comic2ebook.py +++ b/kindlecomicconverter/comic2ebook.py @@ -1698,7 +1698,7 @@ def checkOptions(options): options.white_borders = True options.bordersColor = 'white' # Disable all Kindle features for other e-readers - if options.profile == 'OTHER': + if options.profile == 'OTHER' or options.profile in image.ProfileData.FIXED_RES_STRINGS: options.panelview = False options.hq = False if 'Ko' in options.profile: diff --git a/kindlecomicconverter/image.py b/kindlecomicconverter/image.py index 3b08ae8f..322f4b5c 100755 --- a/kindlecomicconverter/image.py +++ b/kindlecomicconverter/image.py @@ -98,9 +98,9 @@ class ProfileData: 'KPW34': ("Kindle Paperwhite 3/4/Oasis", (1072, 1448), Palette16, 1.0), 'K810': ("Kindle 8/10", (600, 800), Palette16, 1.0), 'KO': ("Kindle Oasis 2/3", (1264, 1680), Palette16, 1.0), - 'K11': ("Kindle 11", (1072, 1448), Palette16, 1.0), + 'K11': ("Kindle 11/2026", (1072, 1448), Palette16, 1.0), 'KPW5': ("Kindle Paperwhite 5/Signature Edition", (1236, 1648), Palette16, 1.0), - 'KPW6': ("Kindle Paperwhite 6", (1272, 1696), Palette16, 1.0), + 'KPW6': ("Kindle Paperwhite 6/2026", (1272, 1696), Palette16, 1.0), 'KS1860': ("Kindle 1860", (1860, 1920), Palette16, 1.0), 'KS1920': ("Kindle 1920", (1920, 1920), Palette16, 1.0), 'KS1240': ("Kindle 1240", (1240, 1860), Palette16, 1.0), @@ -141,11 +141,31 @@ class ProfileData: 'RmkPPMove': ("reMarkable Paper Pro Move", (954, 1696), Palette16, 1.0), } + FIXED_RESOLUTIONS = [ + (1072, 1448), + (1264, 1680), + (1404, 1872), + (1536, 2048), + (1650, 2200), + (1860, 2480), + (2400, 3200), + ] + + FIXED_RESOLUTIONS.reverse() + + FIXED_RES_STRINGS = [f'{w}x{h}' for w, h in FIXED_RESOLUTIONS] + + ProfilesFixed = {} + for res, s in zip(FIXED_RESOLUTIONS, FIXED_RES_STRINGS): + w, h = res + ProfilesFixed[s] = (s, res, Palette16, 1.0) + Profiles = { **ProfilesKindle, **ProfilesKobo, **ProfilesRemarkable, 'OTHER': ("Other", (0, 0), Palette16, 1.0), + **ProfilesFixed }