Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- from PIL import Image, ImageDraw, ImageFilter
- def bbox(x: int, y: int, d: int = 12) -> list[tuple[int, int, int, int]]:
- dd = d * 2
- return [
- (x - d, y - d, x, y),
- (x, y, x + d, y - d),
- (x, y, x + d, y + d),
- (x, y, x - d, y + d),
- (x - d, y - d, x + d, y - d),
- (x + d, y - d, x + d, y + d),
- (x - d, y + d, x + d, y + d),
- (x - d, y - d, x - d, y + d),
- (x, y + dd, x - d, y + d),
- (x + d, y - d, x + dd, y),
- (x + dd, y, x + d, y + d),
- (x + d, y + d, x, y + dd),
- (x, y + dd, x - d, y + d),
- (x - d, y + d, x - dd, y),
- (x - dd, y, x - d, y - d),
- (x - d, y - d, x, y - dd),
- ]
- def gray() -> Image.Image:
- size = 612
- chuncks = 8 # 8x8
- image = Image.new("RGB", (size, size), color=(73, 73, 73))
- draw = ImageDraw.Draw(image)
- rx = size // chuncks
- x = rx // 2
- y = rx // 2
- d = rx // 6
- fill = (255, 255, 255)
- width = 2
- for dy in range(chuncks):
- for dx in range(chuncks):
- dpos = (x + rx * dx, y + rx * dy)
- bbx = bbox(*dpos, d=d)
- for pos in random.sample(bbx, k=random.randrange(4, 8)):
- draw.line(pos, fill=fill, width=width)
- image = image.filter(ImageFilter.ModeFilter(3))
- image = image.filter(ImageFilter.BoxBlur(0.05))
- return image
- if __name__ == "__main__":
- gray().save("gray.png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement