dropshadow option for Text component

This commit is contained in:
tassaron 2017-08-07 21:03:01 -04:00
parent 998f741495
commit 060a7dc2d2
2 changed files with 41 additions and 2 deletions

View File

@ -1,4 +1,4 @@
from PIL import Image, ImageDraw
from PIL import ImageEnhance, ImageFilter, ImageChops
from PyQt5.QtGui import QColor, QFont
from PyQt5 import QtGui, QtCore, QtWidgets
import os
@ -153,7 +153,19 @@ class Component(Component):
image.setFont(font)
image.setPen(self.textColor)
image.drawText(x, y, self.title)
return image.finalize()
# turn QImage into Pillow frame
frame = image.finalize()
if self.shadow:
shadImg = ImageEnhance.Contrast(frame).enhance(0.0)
shadImg = shadImg.filter(ImageFilter.GaussianBlur(self.shadBlur))
shadImg = ImageChops.offset(shadImg, self.shadX, self.shadY)
shadImg.paste(frame, box=(0, 0), mask=frame)
frame = shadImg
return frame
def commandHelp(self):
print('Enter a string to use as centred white text:')

View File

@ -563,6 +563,15 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>-1000</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="value">
<number>-4</number>
</property>
</widget>
</item>
<item>
@ -573,6 +582,15 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimum">
<number>-1000</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="value">
<number>8</number>
</property>
</widget>
</item>
<item>
@ -596,6 +614,15 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximum">
<double>99.000000000000000</double>
</property>
<property name="singleStep">
<double>0.100000000000000</double>
</property>
<property name="value">
<double>5.000000000000000</double>
</property>
</widget>
</item>
<item>