Performance boost for static backgrounds. moved drawBars() inside class.
This commit is contained in:
parent
43073cbd42
commit
fcbe211bf1
|
@ -44,7 +44,7 @@ class Component(__base__.Component):
|
|||
spectrum = numpy.fromfunction(lambda x: 0.008*(x-128)**2, (255,), dtype="int16")
|
||||
width = int(previewWorker.core.settings.value('outputWidth'))
|
||||
height = int(previewWorker.core.settings.value('outputHeight'))
|
||||
return drawBars(width, height, spectrum, self.visColor, self.layout)
|
||||
return self.drawBars(width, height, spectrum, self.visColor, self.layout)
|
||||
|
||||
def preFrameRender(self, **kwargs):
|
||||
super().preFrameRender(**kwargs)
|
||||
|
@ -61,7 +61,7 @@ class Component(__base__.Component):
|
|||
def frameRender(self, moduleNo, frameNo):
|
||||
width = int(self.worker.core.settings.value('outputWidth'))
|
||||
height = int(self.worker.core.settings.value('outputHeight'))
|
||||
return drawBars(width, height, self.spectrumArray[frameNo], self.visColor, self.layout)
|
||||
return self.drawBars(width, height, self.spectrumArray[frameNo], self.visColor, self.layout)
|
||||
|
||||
def pickColor(self):
|
||||
RGBstring, btnStyle = super().pickColor()
|
||||
|
@ -98,7 +98,7 @@ class Component(__base__.Component):
|
|||
|
||||
return lastSpectrum
|
||||
|
||||
def drawBars(width, height, spectrum, color, layout):
|
||||
def drawBars(self, width, height, spectrum, color, layout):
|
||||
vH = height-height/8
|
||||
bF = width / 64
|
||||
bH = bF / 2
|
||||
|
@ -114,7 +114,6 @@ def drawBars(width, height, spectrum, color, layout):
|
|||
draw.rectangle((bH + j * bF, vH+bQ, bH + j * bF + bF, vH + bQ - spectrum[j * 4] * bP - bH), fill=color2)
|
||||
draw.rectangle((bH + bQ + j * bF, vH , bH + bQ + j * bF + bH, vH - spectrum[j * 4] * bP), fill=color)
|
||||
|
||||
|
||||
imBottom = imTop.transpose(Image.FLIP_TOP_BOTTOM)
|
||||
|
||||
im = Image.new("RGBA", (width, height),(0,0,0,0))
|
||||
|
|
|
@ -32,16 +32,10 @@ class Worker(QtCore.QObject):
|
|||
while True:
|
||||
i = self.compositeQueue.get()
|
||||
|
||||
frame = Image.new(
|
||||
"RGBA",
|
||||
(self.width, self.height),
|
||||
(0, 0, 0, 255)
|
||||
)
|
||||
|
||||
if self.imBackground is not None:
|
||||
frame.paste(self.imBackground)
|
||||
frame = self.imBackground
|
||||
else:
|
||||
frame.paste(self.getBackgroundAtIndex(i[1]))
|
||||
frame = self.getBackgroundAtIndex(i[1])
|
||||
|
||||
for compNo, comp in enumerate(self.components):
|
||||
if compNo in self.staticComponents and self.staticComponents[compNo] != None:
|
||||
|
@ -76,9 +70,15 @@ class Worker(QtCore.QObject):
|
|||
|
||||
self.previewQueue.task_done()
|
||||
|
||||
|
||||
def getBackgroundAtIndex(self, i):
|
||||
return self.core.drawBaseImage(self.backgroundFrames[i])
|
||||
background = Image.new(
|
||||
"RGBA",
|
||||
(self.width, self.height),
|
||||
(0, 0, 0, 255)
|
||||
)
|
||||
layer = self.core.drawBaseImage(self.backgroundFrames[i])
|
||||
background.paste(layer)
|
||||
return background
|
||||
|
||||
@pyqtSlot(str, str, str, list)
|
||||
def createVideo(self, backgroundImage, inputFile, outputFile, components):
|
||||
|
@ -154,7 +154,6 @@ class Worker(QtCore.QObject):
|
|||
|
||||
if properties and 'static' in properties:
|
||||
self.staticComponents[compNo] = copy(comp.frameRender(compNo, 0))
|
||||
print('done')
|
||||
|
||||
self.compositeQueue = Queue()
|
||||
self.compositeQueue.maxsize = 20
|
||||
|
@ -163,7 +162,7 @@ class Worker(QtCore.QObject):
|
|||
self.previewQueue = PriorityQueue()
|
||||
|
||||
# create threads to render frames and send them back here for piping out
|
||||
for i in range(2):
|
||||
for i in range(3):
|
||||
t = Thread(target=self.renderNode, name="Render Thread")
|
||||
t.daemon = True
|
||||
t.start()
|
||||
|
|
Reference in New Issue