mardi 29 décembre 2020

How to generate random values that are distant from a list of values?

I have the following transparent images.

enter image description here enter image description here enter image description here enter image description here

What I want to do is to paste them on an image with a background of a specific color. The color of the background is randomized like this:

rand1, rand2, rand3 = (random.randint(0, 255),
                       random.randint(0, 255),
                       random.randint(0, 255))

background = Image.new('RGBA', png.size, (rand1, rand2, rand3))

alpha_composite = Image.alpha_composite(background, png)

Unfortunately, some of the logos don't go well with their background colors. The background color sometimes comes close to color(s) inside the logo, which makes the logo either partially or completely invisible. Here is an example where the background color is almost identical to the orange color in the Ubuntu logo:

enter image description here

What I did was to get all of the colors from each logo and save them in a list of tuples like this. This is actually a list of lists of tuples. I've just edited it now to highlight which nested list of tuples belong to which logo:

Intel = [(0, 113, 197)]
Corsair = [(4, 7, 7)]
Google = [(66, 133, 244), (234, 67, 53), (251, 188, 5), (52, 168, 83), (0, 255, 255), (255, 128, 0), (255, 255, 0)]
Riot = [(209, 54, 57), (255, 255, 255), (226, 130, 132), (0, 0, 0)]

What I want to do is to use the above ^ information to randomly choose background colours so that no part of a logo is made invisible. I'm asking for suggestions on strategies to go about this..




Aucun commentaire:

Enregistrer un commentaire