Optimization: Optimize for loop.

This commit is contained in:
Dylan Araps 2017-06-19 14:09:09 +10:00
parent 40a3d48d80
commit cb27b12509

19
wal.py
View File

@ -142,38 +142,29 @@ def magic(color_count, img):
"""Call Imagemagick to generate a scheme.""" """Call Imagemagick to generate a scheme."""
colors = Popen(["convert", img, "+dither", "-colors", colors = Popen(["convert", img, "+dither", "-colors",
str(color_count), "-unique-colors", "txt:-"], str(color_count), "-unique-colors", "txt:-"],
stdout=subprocess.PIPE, stdout=subprocess.PIPE)
stderr=subprocess.PIPE)
return colors.stdout return colors.stdout.readlines()
def gen_colors(img): def gen_colors(img):
"""Generate a color palette using imagemagick.""" """Generate a color palette using imagemagick."""
colors = []
# Generate initial scheme. # Generate initial scheme.
magic_output = magic(COLOR_COUNT, img).readlines() magic_output = magic(COLOR_COUNT, img)
# If imagemagick finds less than 16 colors, use a larger source number # If imagemagick finds less than 16 colors, use a larger source number
# of colors. # of colors.
index = 0 index = 0
while len(magic_output) - 1 <= 15: while len(magic_output) - 1 <= 15:
index += 1 index += 1
magic_output = magic(COLOR_COUNT + index, img).readlines() magic_output = magic(COLOR_COUNT + index, img)
print("colors: Imagemagick couldn't generate a", COLOR_COUNT, print("colors: Imagemagick couldn't generate a", COLOR_COUNT,
"color palette, trying a larger palette size", "color palette, trying a larger palette size",
COLOR_COUNT + index) COLOR_COUNT + index)
# Create a list of hex colors. # Create a list of hex colors.
search = re.search colors = [re.search('#.{6}', str(col)).group(0) for col in magic_output]
append = colors.append
for color in magic_output:
hex_color = search('#.{6}', str(color))
if hex_color:
append(hex_color.group(0))
# Remove the first element, which isn't a color. # Remove the first element, which isn't a color.
del colors[0] del colors[0]