Я решил свою проблему самостоятельно, проблема в том, что значение альфа-канала в изображении RGBA равно 0 или 255, я просто меняю 255 на 220, чтобы верхнее изображение не закрывало нижнее изображение. Мой код выглядит следующим образом:
def transPNG(srcImageName, dstImageName):
img = Image.open(srcImageName)
img = img.convert("RGBA")
datas = img.getdata()
newData = list()
for item in datas:
if item[0] > 200 and item[1] > 200 and item[2] > 200:
newData.append(( 255, 255, 255, 0))
else:
newData.append((item[0], item[1], item[2], randint(220, 220)))
img.putdata(newData)
img.save(dstImageName,"PNG")
Не знайте об эффективном, но по крайней мере это кратко:
Regex r = new Regex("([A-Z]+[a-z]+)");
string result = r.Replace("CountOfWidgets", m => (m.Value.Length > 3 ? m.Value : m.Value.ToLower()) + " ");