aboutsummaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authortassaron2017-06-14 19:37:47 -0400
committertassaron2017-06-14 19:37:47 -0400
commit8846af57ba9635fe4a1c44778dc468f22277e538 (patch)
tree6ea61299f57074f23dfbe2837a3f918e13f9f72f /components
parent807e37bddd16cb8fa195a220d415cb4bedb1364b (diff)
image component stretch/scale/x/y options
Diffstat (limited to 'components')
-rw-r--r--components/image.py24
-rw-r--r--components/image.ui68
-rw-r--r--components/video.ui43
3 files changed, 126 insertions, 9 deletions
diff --git a/components/image.py b/components/image.py
index cdf10c7..a2f0521 100644
--- a/components/image.py
+++ b/components/image.py
@@ -20,12 +20,20 @@ class Component(__base__.Component):
page.lineEdit_image.textChanged.connect(self.update)
page.pushButton_image.clicked.connect(self.pickImage)
+ page.spinBox_scale.valueChanged.connect(self.update)
+ page.checkBox_stretch.stateChanged.connect(self.update)
+ page.spinBox_x.valueChanged.connect(self.update)
+ page.spinBox_y.valueChanged.connect(self.update)
self.page = page
return page
def update(self):
self.imagePath = self.page.lineEdit_image.text()
+ self.scale = self.page.spinBox_scale.value()
+ self.xPosition = self.page.spinBox_x.value()
+ self.yPosition = self.page.spinBox_y.value()
+ self.stretched = self.page.checkBox_stretch.isChecked()
self.parent.drawPreview()
super().update()
@@ -47,19 +55,31 @@ class Component(__base__.Component):
frame = Image.new("RGBA", (width, height), (0, 0, 0, 0))
if self.imagePath and os.path.exists(self.imagePath):
image = Image.open(self.imagePath)
- if image.size != (width, height):
+ if self.stretched and image.size != (width, height):
image = image.resize((width, height), Image.ANTIALIAS)
- frame.paste(image)
+ if self.scale != 100:
+ newHeight = int((image.height / 100) * self.scale)
+ newWidth = int((image.width / 100) * self.scale)
+ image = image.resize((newWidth, newHeight), Image.ANTIALIAS)
+ frame.paste(image, box=(self.xPosition, self.yPosition))
return frame
def loadPreset(self, pr, presetName=None):
super().loadPreset(pr, presetName)
self.page.lineEdit_image.setText(pr['image'])
+ self.page.spinBox_scale.setValue(pr['scale'])
+ self.page.spinBox_x.setValue(pr['x'])
+ self.page.spinBox_y.setValue(pr['y'])
+ self.page.checkBox_stretch.setChecked(pr['stretched'])
def savePreset(self):
return {
'preset': self.currentPreset,
'image': self.imagePath,
+ 'scale': self.scale,
+ 'stretched': self.stretched,
+ 'x': self.xPosition,
+ 'y': self.yPosition,
}
def pickImage(self):
diff --git a/components/image.ui b/components/image.ui
index 3cd5b1b..685e997 100644
--- a/components/image.ui
+++ b/components/image.ui
@@ -124,8 +124,11 @@
<height>16777215</height>
</size>
</property>
+ <property name="minimum">
+ <number>-10000</number>
+ </property>
<property name="maximum">
- <number>999999999</number>
+ <number>10000</number>
</property>
</widget>
</item>
@@ -163,10 +166,10 @@
</size>
</property>
<property name="minimum">
- <number>0</number>
+ <number>-1000</number>
</property>
<property name="maximum">
- <number>999999999</number>
+ <number>1000</number>
</property>
<property name="value">
<number>0</number>
@@ -178,6 +181,65 @@
</layout>
</item>
<item>
+ <layout class="QHBoxLayout" name="horizontalLayout_9">
+ <item>
+ <widget class="QCheckBox" name="checkBox_stretch">
+ <property name="text">
+ <string>Stretch</string>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_10">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>5</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Scale</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBox_scale">
+ <property name="buttonSymbols">
+ <enum>QAbstractSpinBox::UpDownArrows</enum>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>200</number>
+ </property>
+ <property name="value">
+ <number>100</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
diff --git a/components/video.ui b/components/video.ui
index 6a01368..aca46b4 100644
--- a/components/video.ui
+++ b/components/video.ui
@@ -111,7 +111,7 @@
</widget>
</item>
<item>
- <widget class="QSpinBox" name="spinBox_x_2">
+ <widget class="QSpinBox" name="spinBox_x">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
@@ -124,8 +124,11 @@
<height>16777215</height>
</size>
</property>
+ <property name="minimum">
+ <number>-10000</number>
+ </property>
<property name="maximum">
- <number>999999999</number>
+ <number>10000</number>
</property>
</widget>
</item>
@@ -163,10 +166,10 @@
</size>
</property>
<property name="minimum">
- <number>0</number>
+ <number>-10000</number>
</property>
<property name="maximum">
- <number>999999999</number>
+ <number>10000</number>
</property>
<property name="value">
<number>0</number>
@@ -202,6 +205,35 @@
</property>
</spacer>
</item>
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Scale</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="spinBox_scale">
+ <property name="buttonSymbols">
+ <enum>QAbstractSpinBox::UpDownArrows</enum>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>10</number>
+ </property>
+ <property name="maximum">
+ <number>200</number>
+ </property>
+ <property name="value">
+ <number>100</number>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
<item>
@@ -217,6 +249,9 @@
</property>
</spacer>
</item>
+ <item>
+ <widget class="QWidget" name="widget" native="true"/>
+ </item>
</layout>
</widget>
<resources/>