| @@ -9,31 +9,34 @@ def overlay(image_in): | |||||
| size = image.size | size = image.size | ||||
| center = (size[0]/2, size[1]/2) | center = (size[0]/2, size[1]/2) | ||||
| message = "YOU DIED" | message = "YOU DIED" | ||||
| font_size = size[1] // 6 | |||||
| gradient_range = size[1] // 10 | |||||
| limit = size[1] | |||||
| if size[0] / size[1] < 1: | |||||
| limit = int(limit * size[0] / size[1]) | |||||
| font_size = limit // 5 | |||||
| gradient_range = limit // 10 | |||||
| rect_top = sub(center, (0, font_size * 3 // 4)) | |||||
| rect_bot = sub(center, (0, -font_size * 3 // 4)) | |||||
| rect_top = sub(center, (0, font_size * 3 // 5)) | |||||
| rect_bot = sub(center, (0, -font_size * 3 // 5)) | |||||
| overlay = Image.new("RGBA", size, (0,0,0,0)) | overlay = Image.new("RGBA", size, (0,0,0,0)) | ||||
| draw = ImageDraw.Draw(overlay) | draw = ImageDraw.Draw(overlay) | ||||
| font = ImageFont.truetype("OptimusPrinceps.ttf", font_size) | font = ImageFont.truetype("OptimusPrinceps.ttf", font_size) | ||||
| draw.rectangle([0, rect_top[1], size[0], rect_bot[1]], fill=(0,0,0, 220)) | |||||
| draw.rectangle([0, rect_top[1], size[0], rect_bot[1]], fill=(0,0,0, 225)) | |||||
| for y in range(-1, -gradient_range - 1, -1): | for y in range(-1, -gradient_range - 1, -1): | ||||
| c = 220 - 220 * (-y) // gradient_range | |||||
| c = 225 - 225 * (-y) // gradient_range | |||||
| draw.line([0, rect_top[1] + y, size[0], rect_top[1] + y], fill=(0,0,0,c)) | draw.line([0, rect_top[1] + y, size[0], rect_top[1] + y], fill=(0,0,0,c)) | ||||
| for y in range(1, gradient_range + 1, 1): | for y in range(1, gradient_range + 1, 1): | ||||
| c = 220 - 220 * (y) // gradient_range | |||||
| c = 225 - 225 * (y) // gradient_range | |||||
| draw.line([0, rect_bot[1] + y, size[0], rect_bot[1] + y], fill=(0,0,0,c)) | draw.line([0, rect_bot[1] + y, size[0], rect_bot[1] + y], fill=(0,0,0,c)) | ||||
| text_size = draw.textsize(message, font=font) | text_size = draw.textsize(message, font=font) | ||||
| offset = (center[0] - text_size[0]/2, center[1] - text_size[1]/2) | offset = (center[0] - text_size[0]/2, center[1] - text_size[1]/2) | ||||
| draw.text(offset, message, (255,0,0), font=font) | |||||
| draw.text(offset, message, (200,25,25), font=font) | |||||
| result = Image.alpha_composite(Image.alpha_composite(image, Image.new("RGBA", size, (0,0,0,100))), overlay) | |||||
| result = Image.alpha_composite(Image.alpha_composite(image, Image.new("RGBA", size, (0,0,0,125))), overlay) | |||||
| return result | return result | ||||