mirror of
https://github.com/ciromattia/kcc
synced 2025-12-13 01:36:27 +00:00
Add preserve margin % toggle (#886)
* preserve margin * set ratio to 0.5 * add preserve margin GUI * increase step size to 5 * remove clear * fix save * save preserveMarginBox * math * max 99
This commit is contained in:
@@ -181,6 +181,7 @@ PROCESSING:
|
|||||||
Set cropping mode. 0: Disabled 1: Margins 2: Margins + page numbers [Default=2]
|
Set cropping mode. 0: Disabled 1: Margins 2: Margins + page numbers [Default=2]
|
||||||
--cp CROPPINGP, --croppingpower CROPPINGP
|
--cp CROPPINGP, --croppingpower CROPPINGP
|
||||||
Set cropping power [Default=1.0]
|
Set cropping power [Default=1.0]
|
||||||
|
--preservemargin After calculating crop, "back up" a specified percentage amount [Default=0]
|
||||||
--cm CROPPINGM, --croppingminimum CROPPINGM
|
--cm CROPPINGM, --croppingminimum CROPPINGM
|
||||||
Set cropping minimum area ratio [Default=0.0]
|
Set cropping minimum area ratio [Default=0.0]
|
||||||
--ipc INTERPANELCROP, --interpanelcrop INTERPANELCROP
|
--ipc INTERPANELCROP, --interpanelcrop INTERPANELCROP
|
||||||
|
|||||||
35
gui/KCC.ui
35
gui/KCC.ui
@@ -330,7 +330,7 @@
|
|||||||
<property name="visible">
|
<property name="visible">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
<layout class="QGridLayout" name="gridLayout_5">
|
||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
@@ -343,14 +343,24 @@
|
|||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item row="1" column="0">
|
||||||
|
<widget class="QLabel" name="preserveMarginLabel">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string><html><head/><body><p>After calculating the cropping boundaries, &quot;back up&quot; a specified percentage amount.</p></body></html></string>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Preserve Margin %</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="croppingPowerLabel">
|
<widget class="QLabel" name="croppingPowerLabel">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Cropping power:</string>
|
<string>Cropping power:</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item row="0" column="1">
|
||||||
<widget class="QSlider" name="croppingPowerSlider">
|
<widget class="QSlider" name="croppingPowerSlider">
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>300</number>
|
<number>300</number>
|
||||||
@@ -363,6 +373,25 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QSpinBox" name="preserveMarginBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>99</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>0</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@@ -246,6 +246,7 @@ class WorkerThread(QThread):
|
|||||||
options.cropping = GUI.croppingBox.checkState().value
|
options.cropping = GUI.croppingBox.checkState().value
|
||||||
if GUI.croppingBox.checkState() != Qt.CheckState.Unchecked:
|
if GUI.croppingBox.checkState() != Qt.CheckState.Unchecked:
|
||||||
options.croppingp = float(GUI.croppingPowerValue)
|
options.croppingp = float(GUI.croppingPowerValue)
|
||||||
|
options.preservemargin = GUI.preserveMarginBox.value()
|
||||||
options.interpanelcrop = GUI.interPanelCropBox.checkState().value
|
options.interpanelcrop = GUI.interPanelCropBox.checkState().value
|
||||||
if GUI.borderBox.checkState() == Qt.CheckState.PartiallyChecked:
|
if GUI.borderBox.checkState() == Qt.CheckState.PartiallyChecked:
|
||||||
options.white_borders = True
|
options.white_borders = True
|
||||||
@@ -803,6 +804,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
|
|||||||
'gammaBox': GUI.gammaBox.checkState().value,
|
'gammaBox': GUI.gammaBox.checkState().value,
|
||||||
'croppingBox': GUI.croppingBox.checkState().value,
|
'croppingBox': GUI.croppingBox.checkState().value,
|
||||||
'croppingPowerSlider': float(self.croppingPowerValue) * 100,
|
'croppingPowerSlider': float(self.croppingPowerValue) * 100,
|
||||||
|
'preserveMarginBox': self.preserveMarginBox.value(),
|
||||||
'interPanelCropBox': GUI.interPanelCropBox.checkState().value,
|
'interPanelCropBox': GUI.interPanelCropBox.checkState().value,
|
||||||
'upscaleBox': GUI.upscaleBox.checkState().value,
|
'upscaleBox': GUI.upscaleBox.checkState().value,
|
||||||
'borderBox': GUI.borderBox.checkState().value,
|
'borderBox': GUI.borderBox.checkState().value,
|
||||||
@@ -1159,6 +1161,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
|
|||||||
if GUI.croppingPowerSlider.isEnabled():
|
if GUI.croppingPowerSlider.isEnabled():
|
||||||
GUI.croppingPowerSlider.setValue(int(self.options[option]))
|
GUI.croppingPowerSlider.setValue(int(self.options[option]))
|
||||||
self.changeCroppingPower(int(self.options[option]))
|
self.changeCroppingPower(int(self.options[option]))
|
||||||
|
GUI.preserveMarginBox.setValue(self.options.get('preserveMarginBox', 0))
|
||||||
elif str(option) == "chunkSizeBox":
|
elif str(option) == "chunkSizeBox":
|
||||||
GUI.chunkSizeBox.setValue(int(self.options[option]))
|
GUI.chunkSizeBox.setValue(int(self.options[option]))
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -11612,51 +11612,51 @@ qt_resource_struct = b"\
|
|||||||
\x00\x00\x00X\x00\x02\x00\x00\x00\x04\x00\x00\x00\x07\
|
\x00\x00\x00X\x00\x02\x00\x00\x00\x04\x00\x00\x00\x07\
|
||||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||||
\x00\x00\x01\xc0\x00\x00\x00\x00\x00\x01\x00\x02.\xed\
|
\x00\x00\x01\xc0\x00\x00\x00\x00\x00\x01\x00\x02.\xed\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x00\xfc\
|
\x00\x00\x01\x88;p\xbcB\
|
||||||
\x00\x00\x01\xfe\x00\x00\x00\x00\x00\x01\x00\x02\x83\x87\
|
\x00\x00\x01\xfe\x00\x00\x00\x00\x00\x01\x00\x02\x83\x87\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x00\xfb\
|
\x00\x00\x01\x88;p\xbcB\
|
||||||
\x00\x00\x01\xea\x00\x00\x00\x00\x00\x01\x00\x02Y\x8c\
|
\x00\x00\x01\xea\x00\x00\x00\x00\x00\x01\x00\x02Y\x8c\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x00\xfb\
|
\x00\x00\x01\x88;p\xbcB\
|
||||||
\x00\x00\x01\xd6\x00\x00\x00\x00\x00\x01\x00\x02N)\
|
\x00\x00\x01\xd6\x00\x00\x00\x00\x00\x01\x00\x02N)\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x00\xfb\
|
\x00\x00\x01\x89\x89D9.\
|
||||||
\x00\x00\x00X\x00\x02\x00\x00\x00\x04\x00\x00\x00\x0c\
|
\x00\x00\x00X\x00\x02\x00\x00\x00\x04\x00\x00\x00\x0c\
|
||||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||||
\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x01\x00\x01(\x97\
|
\x00\x00\x00\xa6\x00\x00\x00\x00\x00\x01\x00\x01(\x97\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x00\xfc\
|
\x00\x00\x01\x88;p\xbcB\
|
||||||
\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x01\x00\x011\xef\
|
\x00\x00\x00\xbc\x00\x00\x00\x00\x00\x01\x00\x011\xef\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x00\xfd\
|
\x00\x00\x01\x94\x1a\xa2\xa2\x92\
|
||||||
\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x01\x1d\x90\
|
\x00\x00\x00\x8c\x00\x00\x00\x00\x00\x01\x00\x01\x1d\x90\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x00\xfc\
|
\x00\x00\x01\x88;p\xbcB\
|
||||||
\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x01:\x05\
|
\x00\x00\x00\xd0\x00\x00\x00\x00\x00\x01\x00\x01:\x05\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x00\xfd\
|
\x00\x00\x01\x88;p\xbcB\
|
||||||
\x00\x00\x00X\x00\x02\x00\x00\x00\x03\x00\x00\x00\x11\
|
\x00\x00\x00X\x00\x02\x00\x00\x00\x03\x00\x00\x00\x11\
|
||||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||||
\x00\x00\x02B\x00\x00\x00\x00\x00\x01\x00\x02\xb5\xd3\
|
\x00\x00\x02B\x00\x00\x00\x00\x00\x01\x00\x02\xb5\xd3\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x0c\
|
\x00\x00\x01\x88;p\xbcJ\
|
||||||
\x00\x00\x02\x14\x00\x00\x00\x00\x00\x01\x00\x02\x9f\xd6\
|
\x00\x00\x02\x14\x00\x00\x00\x00\x00\x01\x00\x02\x9f\xd6\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x0a\
|
\x00\x00\x01\x88;p\xbcI\
|
||||||
\x00\x00\x02*\x00\x00\x00\x00\x00\x01\x00\x02\xa93\
|
\x00\x00\x02*\x00\x00\x00\x00\x00\x01\x00\x02\xa93\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x09\
|
\x00\x00\x01\x88;p\xbcI\
|
||||||
\x00\x00\x00X\x00\x02\x00\x00\x00\x07\x00\x00\x00\x15\
|
\x00\x00\x00X\x00\x02\x00\x00\x00\x07\x00\x00\x00\x15\
|
||||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||||
\x00\x00\x01\x1c\x00\x00\x00\x00\x00\x01\x00\x01P\xb1\
|
\x00\x00\x01\x1c\x00\x00\x00\x00\x00\x01\x00\x01P\xb1\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x0c\
|
\x00\x00\x01\x88;p\xbcJ\
|
||||||
\x00\x00\x012\x00\x00\x00\x00\x00\x01\x00\x01yY\
|
\x00\x00\x012\x00\x00\x00\x00\x00\x01\x00\x01yY\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x0a\
|
\x00\x00\x01\x88;p\xbcI\
|
||||||
\x00\x00\x01\x94\x00\x00\x00\x00\x00\x01\x00\x01\xd2-\
|
\x00\x00\x01\x94\x00\x00\x00\x00\x00\x01\x00\x01\xd2-\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x0a\
|
\x00\x00\x01\x94\xb4\xd4\xf0a\
|
||||||
\x00\x00\x01z\x00\x00\x00\x00\x00\x01\x00\x01\x8c\xe6\
|
\x00\x00\x01z\x00\x00\x00\x00\x00\x01\x00\x01\x8c\xe6\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x09\
|
\x00\x00\x01\x88;p\xbcH\
|
||||||
\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x01LR\
|
\x00\x00\x01\x04\x00\x00\x00\x00\x00\x01\x00\x01LR\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x02\
|
\x00\x00\x01\x88;p\xbcF\
|
||||||
\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x01\x00\x01?\xe9\
|
\x00\x00\x00\xe8\x00\x00\x00\x00\x00\x01\x00\x01?\xe9\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x08\
|
\x00\x00\x01\x88;p\xbcH\
|
||||||
\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x01\x82\xb0\
|
\x00\x00\x01T\x00\x00\x00\x00\x00\x01\x00\x01\x82\xb0\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x09\
|
\x00\x00\x01\x88;p\xbcH\
|
||||||
\x00\x00\x00X\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1d\
|
\x00\x00\x00X\x00\x02\x00\x00\x00\x01\x00\x00\x00\x1d\
|
||||||
\x00\x00\x00\x00\x00\x00\x00\x00\
|
\x00\x00\x00\x00\x00\x00\x00\x00\
|
||||||
\x00\x00\x00h\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
\x00\x00\x00h\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
|
||||||
\x00\x00\x01\x95\xcf\xe3\x01\x08\
|
\x00\x00\x01\x88;p\xbcH\
|
||||||
"
|
"
|
||||||
|
|
||||||
def qInitResources():
|
def qInitResources():
|
||||||
|
|||||||
@@ -190,13 +190,18 @@ class Ui_mainWindow(object):
|
|||||||
self.croppingWidget = QWidget(self.centralWidget)
|
self.croppingWidget = QWidget(self.centralWidget)
|
||||||
self.croppingWidget.setObjectName(u"croppingWidget")
|
self.croppingWidget.setObjectName(u"croppingWidget")
|
||||||
self.croppingWidget.setVisible(False)
|
self.croppingWidget.setVisible(False)
|
||||||
self.horizontalLayout_3 = QHBoxLayout(self.croppingWidget)
|
self.gridLayout_5 = QGridLayout(self.croppingWidget)
|
||||||
self.horizontalLayout_3.setObjectName(u"horizontalLayout_3")
|
self.gridLayout_5.setObjectName(u"gridLayout_5")
|
||||||
self.horizontalLayout_3.setContentsMargins(0, 0, 0, 0)
|
self.gridLayout_5.setContentsMargins(0, 0, 0, 0)
|
||||||
|
self.preserveMarginLabel = QLabel(self.croppingWidget)
|
||||||
|
self.preserveMarginLabel.setObjectName(u"preserveMarginLabel")
|
||||||
|
|
||||||
|
self.gridLayout_5.addWidget(self.preserveMarginLabel, 1, 0, 1, 1)
|
||||||
|
|
||||||
self.croppingPowerLabel = QLabel(self.croppingWidget)
|
self.croppingPowerLabel = QLabel(self.croppingWidget)
|
||||||
self.croppingPowerLabel.setObjectName(u"croppingPowerLabel")
|
self.croppingPowerLabel.setObjectName(u"croppingPowerLabel")
|
||||||
|
|
||||||
self.horizontalLayout_3.addWidget(self.croppingPowerLabel)
|
self.gridLayout_5.addWidget(self.croppingPowerLabel, 0, 0, 1, 1)
|
||||||
|
|
||||||
self.croppingPowerSlider = QSlider(self.croppingWidget)
|
self.croppingPowerSlider = QSlider(self.croppingWidget)
|
||||||
self.croppingPowerSlider.setObjectName(u"croppingPowerSlider")
|
self.croppingPowerSlider.setObjectName(u"croppingPowerSlider")
|
||||||
@@ -204,7 +209,20 @@ class Ui_mainWindow(object):
|
|||||||
self.croppingPowerSlider.setSingleStep(1)
|
self.croppingPowerSlider.setSingleStep(1)
|
||||||
self.croppingPowerSlider.setOrientation(Qt.Orientation.Horizontal)
|
self.croppingPowerSlider.setOrientation(Qt.Orientation.Horizontal)
|
||||||
|
|
||||||
self.horizontalLayout_3.addWidget(self.croppingPowerSlider)
|
self.gridLayout_5.addWidget(self.croppingPowerSlider, 0, 1, 1, 1)
|
||||||
|
|
||||||
|
self.preserveMarginBox = QSpinBox(self.croppingWidget)
|
||||||
|
self.preserveMarginBox.setObjectName(u"preserveMarginBox")
|
||||||
|
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||||
|
sizePolicy2.setHorizontalStretch(0)
|
||||||
|
sizePolicy2.setVerticalStretch(0)
|
||||||
|
sizePolicy2.setHeightForWidth(self.preserveMarginBox.sizePolicy().hasHeightForWidth())
|
||||||
|
self.preserveMarginBox.setSizePolicy(sizePolicy2)
|
||||||
|
self.preserveMarginBox.setMaximum(99)
|
||||||
|
self.preserveMarginBox.setSingleStep(5)
|
||||||
|
self.preserveMarginBox.setValue(0)
|
||||||
|
|
||||||
|
self.gridLayout_5.addWidget(self.preserveMarginBox, 1, 1, 1, 1)
|
||||||
|
|
||||||
|
|
||||||
self.gridLayout.addWidget(self.croppingWidget, 9, 0, 1, 2)
|
self.gridLayout.addWidget(self.croppingWidget, 9, 0, 1, 2)
|
||||||
@@ -276,11 +294,11 @@ class Ui_mainWindow(object):
|
|||||||
|
|
||||||
self.authorEdit = QLineEdit(self.optionWidget)
|
self.authorEdit = QLineEdit(self.optionWidget)
|
||||||
self.authorEdit.setObjectName(u"authorEdit")
|
self.authorEdit.setObjectName(u"authorEdit")
|
||||||
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
|
sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Fixed)
|
||||||
sizePolicy2.setHorizontalStretch(0)
|
sizePolicy3.setHorizontalStretch(0)
|
||||||
sizePolicy2.setVerticalStretch(0)
|
sizePolicy3.setVerticalStretch(0)
|
||||||
sizePolicy2.setHeightForWidth(self.authorEdit.sizePolicy().hasHeightForWidth())
|
sizePolicy3.setHeightForWidth(self.authorEdit.sizePolicy().hasHeightForWidth())
|
||||||
self.authorEdit.setSizePolicy(sizePolicy2)
|
self.authorEdit.setSizePolicy(sizePolicy3)
|
||||||
self.authorEdit.setFocusPolicy(Qt.FocusPolicy.ClickFocus)
|
self.authorEdit.setFocusPolicy(Qt.FocusPolicy.ClickFocus)
|
||||||
self.authorEdit.setClearButtonEnabled(False)
|
self.authorEdit.setClearButtonEnabled(False)
|
||||||
|
|
||||||
@@ -355,8 +373,8 @@ class Ui_mainWindow(object):
|
|||||||
|
|
||||||
self.chunkSizeWidget = QWidget(self.centralWidget)
|
self.chunkSizeWidget = QWidget(self.centralWidget)
|
||||||
self.chunkSizeWidget.setObjectName(u"chunkSizeWidget")
|
self.chunkSizeWidget.setObjectName(u"chunkSizeWidget")
|
||||||
sizePolicy2.setHeightForWidth(self.chunkSizeWidget.sizePolicy().hasHeightForWidth())
|
sizePolicy3.setHeightForWidth(self.chunkSizeWidget.sizePolicy().hasHeightForWidth())
|
||||||
self.chunkSizeWidget.setSizePolicy(sizePolicy2)
|
self.chunkSizeWidget.setSizePolicy(sizePolicy3)
|
||||||
self.chunkSizeWidget.setVisible(False)
|
self.chunkSizeWidget.setVisible(False)
|
||||||
self.horizontalLayout_4 = QHBoxLayout(self.chunkSizeWidget)
|
self.horizontalLayout_4 = QHBoxLayout(self.chunkSizeWidget)
|
||||||
self.horizontalLayout_4.setSpacing(0)
|
self.horizontalLayout_4.setSpacing(0)
|
||||||
@@ -364,11 +382,11 @@ class Ui_mainWindow(object):
|
|||||||
self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
|
self.horizontalLayout_4.setContentsMargins(0, 0, 0, 0)
|
||||||
self.chunkSizeLabel = QLabel(self.chunkSizeWidget)
|
self.chunkSizeLabel = QLabel(self.chunkSizeWidget)
|
||||||
self.chunkSizeLabel.setObjectName(u"chunkSizeLabel")
|
self.chunkSizeLabel.setObjectName(u"chunkSizeLabel")
|
||||||
sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Preferred)
|
sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Preferred)
|
||||||
sizePolicy3.setHorizontalStretch(0)
|
sizePolicy4.setHorizontalStretch(0)
|
||||||
sizePolicy3.setVerticalStretch(0)
|
sizePolicy4.setVerticalStretch(0)
|
||||||
sizePolicy3.setHeightForWidth(self.chunkSizeLabel.sizePolicy().hasHeightForWidth())
|
sizePolicy4.setHeightForWidth(self.chunkSizeLabel.sizePolicy().hasHeightForWidth())
|
||||||
self.chunkSizeLabel.setSizePolicy(sizePolicy3)
|
self.chunkSizeLabel.setSizePolicy(sizePolicy4)
|
||||||
|
|
||||||
self.horizontalLayout_4.addWidget(self.chunkSizeLabel)
|
self.horizontalLayout_4.addWidget(self.chunkSizeLabel)
|
||||||
|
|
||||||
@@ -382,8 +400,8 @@ class Ui_mainWindow(object):
|
|||||||
|
|
||||||
self.chunkSizeWarnLabel = QLabel(self.chunkSizeWidget)
|
self.chunkSizeWarnLabel = QLabel(self.chunkSizeWidget)
|
||||||
self.chunkSizeWarnLabel.setObjectName(u"chunkSizeWarnLabel")
|
self.chunkSizeWarnLabel.setObjectName(u"chunkSizeWarnLabel")
|
||||||
sizePolicy3.setHeightForWidth(self.chunkSizeWarnLabel.sizePolicy().hasHeightForWidth())
|
sizePolicy4.setHeightForWidth(self.chunkSizeWarnLabel.sizePolicy().hasHeightForWidth())
|
||||||
self.chunkSizeWarnLabel.setSizePolicy(sizePolicy3)
|
self.chunkSizeWarnLabel.setSizePolicy(sizePolicy4)
|
||||||
|
|
||||||
self.horizontalLayout_4.addWidget(self.chunkSizeWarnLabel)
|
self.horizontalLayout_4.addWidget(self.chunkSizeWarnLabel)
|
||||||
|
|
||||||
@@ -472,6 +490,10 @@ class Ui_mainWindow(object):
|
|||||||
#if QT_CONFIG(tooltip)
|
#if QT_CONFIG(tooltip)
|
||||||
self.heightBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p style='white-space:pre'>Resolution of the target device.</p></body></html>", None))
|
self.heightBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p style='white-space:pre'>Resolution of the target device.</p></body></html>", None))
|
||||||
#endif // QT_CONFIG(tooltip)
|
#endif // QT_CONFIG(tooltip)
|
||||||
|
#if QT_CONFIG(tooltip)
|
||||||
|
self.preserveMarginLabel.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p>After calculating the cropping boundaries, "back up" a specified percentage amount.</p></body></html>", None))
|
||||||
|
#endif // QT_CONFIG(tooltip)
|
||||||
|
self.preserveMarginLabel.setText(QCoreApplication.translate("mainWindow", u"Preserve Margin %", None))
|
||||||
self.croppingPowerLabel.setText(QCoreApplication.translate("mainWindow", u"Cropping power:", None))
|
self.croppingPowerLabel.setText(QCoreApplication.translate("mainWindow", u"Cropping power:", None))
|
||||||
#if QT_CONFIG(tooltip)
|
#if QT_CONFIG(tooltip)
|
||||||
self.croppingBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p><span style=\" font-weight:600; text-decoration: underline;\">Unchecked - Disabled</span></p><p>Disabled</p><p><span style=\" font-weight:600; text-decoration: underline;\">Indeterminate - Margins<br/></span>Margins</p><p><span style=\" font-weight:600; text-decoration: underline;\">Checked - Margins + page numbers<br/></span>Margins +page numbers</p></body></html>", None))
|
self.croppingBox.setToolTip(QCoreApplication.translate("mainWindow", u"<html><head/><body><p><span style=\" font-weight:600; text-decoration: underline;\">Unchecked - Disabled</span></p><p>Disabled</p><p><span style=\" font-weight:600; text-decoration: underline;\">Indeterminate - Margins<br/></span>Margins</p><p><span style=\" font-weight:600; text-decoration: underline;\">Checked - Margins + page numbers<br/></span>Margins +page numbers</p></body></html>", None))
|
||||||
|
|||||||
@@ -1050,6 +1050,8 @@ def makeParser():
|
|||||||
help="Set cropping mode. 0: Disabled 1: Margins 2: Margins + page numbers [Default=2]")
|
help="Set cropping mode. 0: Disabled 1: Margins 2: Margins + page numbers [Default=2]")
|
||||||
processing_options.add_argument("--cp", "--croppingpower", type=float, dest="croppingp", default="1.0",
|
processing_options.add_argument("--cp", "--croppingpower", type=float, dest="croppingp", default="1.0",
|
||||||
help="Set cropping power [Default=1.0]")
|
help="Set cropping power [Default=1.0]")
|
||||||
|
processing_options.add_argument("--preservemargin", type=int, dest="preservemargin", default="0",
|
||||||
|
help="After calculating crop, back up specified percentage amount. [Default=0]")
|
||||||
processing_options.add_argument("--cm", "--croppingminimum", type=float, dest="croppingm", default="0.0",
|
processing_options.add_argument("--cm", "--croppingminimum", type=float, dest="croppingm", default="0.0",
|
||||||
help="Set cropping minimum area ratio [Default=0.0]")
|
help="Set cropping minimum area ratio [Default=0.0]")
|
||||||
processing_options.add_argument("--ipc", "--interpanelcrop", type=int, dest="interpanelcrop", default="0",
|
processing_options.add_argument("--ipc", "--interpanelcrop", type=int, dest="interpanelcrop", default="0",
|
||||||
|
|||||||
@@ -390,6 +390,11 @@ class ComicPage:
|
|||||||
return Image.Resampling.LANCZOS
|
return Image.Resampling.LANCZOS
|
||||||
|
|
||||||
def maybeCrop(self, box, minimum):
|
def maybeCrop(self, box, minimum):
|
||||||
|
w, h = self.image.size
|
||||||
|
left, upper, right, lower = box
|
||||||
|
if self.opt.preservemargin:
|
||||||
|
ratio = 1 - self.opt.preservemargin / 100
|
||||||
|
box = left * ratio, upper * ratio, right + (w - right) * (1 - ratio), lower + (h - lower) * (1 - ratio)
|
||||||
box_area = (box[2] - box[0]) * (box[3] - box[1])
|
box_area = (box[2] - box[0]) * (box[3] - box[1])
|
||||||
image_area = self.image.size[0] * self.image.size[1]
|
image_area = self.image.size[0] * self.image.size[1]
|
||||||
if (box_area / image_area) >= minimum:
|
if (box_area / image_area) >= minimum:
|
||||||
|
|||||||
Reference in New Issue
Block a user