basic image component
This commit is contained in:
parent
5480b20d40
commit
cfb8e17b63
|
@ -57,12 +57,19 @@ class Component(__base__.Component):
|
||||||
r,g,b = self.color1
|
r,g,b = self.color1
|
||||||
return Image.new("RGBA", (width, height), (r, g, b, 255))
|
return Image.new("RGBA", (width, height), (r, g, b, 255))
|
||||||
|
|
||||||
def loadPreset(self, presetDict):
|
def loadPreset(self, pr):
|
||||||
# update widgets using a preset dict
|
self.page.lineEdit_color1.setText('%s,%s,%s' % pr['color1'])
|
||||||
pass
|
self.page.lineEdit_color2.setText('%s,%s,%s' % pr['color2'])
|
||||||
|
btnStyle = "QPushButton { background-color : %s; outline: none; }" % QColor(*pr['color1']).name()
|
||||||
|
self.page.pushButton_color1.setStyleSheet(btnStyle)
|
||||||
|
btnStyle = "QPushButton { background-color : %s; outline: none; }" % QColor(*pr['color2']).name()
|
||||||
|
self.page.pushButton_color2.setStyleSheet(btnStyle)
|
||||||
|
|
||||||
def savePreset(self):
|
def savePreset(self):
|
||||||
return {}
|
return {
|
||||||
|
'color1' : self.color1,
|
||||||
|
'color2' : self.color2,
|
||||||
|
}
|
||||||
|
|
||||||
def pickColor(self, num):
|
def pickColor(self, num):
|
||||||
RGBstring, btnStyle = super().pickColor()
|
RGBstring, btnStyle = super().pickColor()
|
||||||
|
|
|
@ -7,12 +7,20 @@ class Component(__base__.Component):
|
||||||
'''Image'''
|
'''Image'''
|
||||||
def widget(self, parent):
|
def widget(self, parent):
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
|
self.settings = parent.settings
|
||||||
page = uic.loadUi(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'image.ui'))
|
page = uic.loadUi(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'image.ui'))
|
||||||
|
self.imagePath = ''
|
||||||
|
self.x = 0
|
||||||
|
self.y = 0
|
||||||
|
|
||||||
|
page.lineEdit_image.textChanged.connect(self.update)
|
||||||
|
page.pushButton_image.clicked.connect(self.pickImage)
|
||||||
|
|
||||||
self.page = page
|
self.page = page
|
||||||
return page
|
return page
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
# read widget values
|
self.imagePath = self.page.lineEdit_image.text()
|
||||||
self.parent.drawPreview()
|
self.parent.drawPreview()
|
||||||
|
|
||||||
def previewRender(self, previewWorker):
|
def previewRender(self, previewWorker):
|
||||||
|
@ -26,17 +34,33 @@ class Component(__base__.Component):
|
||||||
return self.drawFrame(width, height)
|
return self.drawFrame(width, height)
|
||||||
|
|
||||||
def drawFrame(self, width, height):
|
def drawFrame(self, width, height):
|
||||||
return Image.new("RGBA", (width, height), (0,0,0,255))
|
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):
|
||||||
|
image = image.resize((width, height), Image.ANTIALIAS)
|
||||||
|
frame.paste(image)
|
||||||
|
return frame
|
||||||
|
|
||||||
def loadPreset(self, presetDict):
|
def loadPreset(self, pr):
|
||||||
# update widgets using a preset dict
|
self.page.lineEdit_image.setText(pr['image'])
|
||||||
pass
|
|
||||||
|
|
||||||
def savePreset(self):
|
def savePreset(self):
|
||||||
return {}
|
return {
|
||||||
|
'image' : self.imagePath,
|
||||||
|
}
|
||||||
|
|
||||||
def cancel(self):
|
def cancel(self):
|
||||||
self.canceled = True
|
self.canceled = True
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self.canceled = False
|
self.canceled = False
|
||||||
|
|
||||||
|
def pickImage(self):
|
||||||
|
imgDir = self.settings.value("backgroundDir", os.path.expanduser("~"))
|
||||||
|
filename = QtGui.QFileDialog.getOpenFileName(self.page,
|
||||||
|
"Choose Image", imgDir, "Image Files (*.jpg *.png)")
|
||||||
|
if filename:
|
||||||
|
self.settings.setValue("backgroundDir", os.path.dirname(filename))
|
||||||
|
self.page.lineEdit_image.setText(filename)
|
||||||
|
self.update()
|
||||||
|
|
|
@ -41,20 +41,17 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="lineEdit_color1">
|
<widget class="QLineEdit" name="lineEdit_image">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>1</width>
|
<width>1</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maxLength">
|
|
||||||
<number>12</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="pushButton_color1">
|
<widget class="QPushButton" name="pushButton_image">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
@ -114,7 +111,7 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSpinBox" name="spinBox_y">
|
<widget class="QSpinBox" name="spinBox_x">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
@ -146,7 +143,7 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSpinBox" name="spinBox_x">
|
<widget class="QSpinBox" name="spinBox_y">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
|
|
@ -7,12 +7,20 @@ class Component(__base__.Component):
|
||||||
'''Video'''
|
'''Video'''
|
||||||
def widget(self, parent):
|
def widget(self, parent):
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
|
self.settings = parent.settings
|
||||||
page = uic.loadUi(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'video.ui'))
|
page = uic.loadUi(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'video.ui'))
|
||||||
|
self.videoPath = ''
|
||||||
|
self.x = 0
|
||||||
|
self.y = 0
|
||||||
|
|
||||||
|
page.lineEdit_video.textChanged.connect(self.update)
|
||||||
|
page.pushButton_video.clicked.connect(self.pickVideo)
|
||||||
|
|
||||||
self.page = page
|
self.page = page
|
||||||
return page
|
return page
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
# read widget values
|
self.videoPath = self.page.lineEdit_video.text()
|
||||||
self.parent.drawPreview()
|
self.parent.drawPreview()
|
||||||
|
|
||||||
def previewRender(self, previewWorker):
|
def previewRender(self, previewWorker):
|
||||||
|
@ -26,17 +34,35 @@ class Component(__base__.Component):
|
||||||
return self.drawFrame(width, height)
|
return self.drawFrame(width, height)
|
||||||
|
|
||||||
def drawFrame(self, width, height):
|
def drawFrame(self, width, height):
|
||||||
return Image.new("RGBA", (width, height), (0,0,0,255))
|
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):
|
||||||
|
image = image.resize((width, height), Image.ANTIALIAS)
|
||||||
|
frame.paste(image)
|
||||||
|
'''
|
||||||
|
return frame
|
||||||
|
|
||||||
def loadPreset(self, presetDict):
|
def loadPreset(self, pr):
|
||||||
# update widgets using a preset dict
|
self.page.lineEdit_video.setText(pr['video'])
|
||||||
pass
|
|
||||||
|
|
||||||
def savePreset(self):
|
def savePreset(self):
|
||||||
return {}
|
return {
|
||||||
|
'video' : self.videoPath,
|
||||||
|
}
|
||||||
|
|
||||||
def cancel(self):
|
def cancel(self):
|
||||||
self.canceled = True
|
self.canceled = True
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self.canceled = False
|
self.canceled = False
|
||||||
|
|
||||||
|
def pickVideo(self):
|
||||||
|
imgDir = self.settings.value("backgroundDir", os.path.expanduser("~"))
|
||||||
|
filename = QtGui.QFileDialog.getOpenFileName(self.page,
|
||||||
|
"Choose Video", imgDir, "Video Files (*.mp4)")
|
||||||
|
if filename:
|
||||||
|
self.settings.setValue("backgroundDir", os.path.dirname(filename))
|
||||||
|
self.page.lineEdit_video.setText(filename)
|
||||||
|
self.update()
|
||||||
|
|
|
@ -41,20 +41,17 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLineEdit" name="lineEdit_color1">
|
<widget class="QLineEdit" name="lineEdit_video">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>1</width>
|
<width>1</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maxLength">
|
|
||||||
<number>12</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="pushButton_color1">
|
<widget class="QPushButton" name="pushButton_video">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
@ -114,7 +111,7 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSpinBox" name="spinBox_y">
|
<widget class="QSpinBox" name="spinBox_x_2">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
@ -146,7 +143,7 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSpinBox" name="spinBox_x">
|
<widget class="QSpinBox" name="spinBox_y">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
@ -183,7 +180,7 @@
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="checkBox">
|
<widget class="QCheckBox" name="checkBox_loop">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Loop</string>
|
<string>Loop</string>
|
||||||
</property>
|
</property>
|
||||||
|
|
Reference in New Issue