Es ist in Ordnung. Erstellen Sie mit Python und PIL (Python Image Library) ein Hintergrundbild mit Tupfen. Sie müssen PIL und Python im Voraus installieren. Informationen zur Installation finden Sie unten.
Nimmt zwei Argumente. Das Format der beiden Argumente ist das gleiche. Dies ist die Farbspezifikation des HLS-Formats, die durch Folgendes getrennt ist :. Beachten Sie, dass die von CSS3 unterstützte hsl-Notation und die Reihenfolge der Argumente unterschiedlich sind.
360:100:100
Die Zahl vor der ersten: ist Farbton (Farbton). Es nimmt einen Wert von 0 bis 360 an.
Die nächste Zahl ist Luminanz. Es nimmt einen Wert von 0 bis 100 an.
Die letzte Zahl ist Sättigung. Es nimmt einen Wert von 0 bis 100 an.
Durch Angabe von zwei dieser Werte können Sie die Farbe des Tupfenkreises angeben.
wallpaper.py 84:84:84 164:98:84
Da die Anti-Aliasing-Verarbeitung nur angewendet werden kann, wenn das Bild in der Python-Bildbibliothek verkleinert wird, ist die Bildgröße auf 100 * 100 festgelegt und wird in Ihrem Bildbetrachter angezeigt. Zeigen Sie es mit IrfanView usw. an, verkleinern Sie es und speichern Sie es im Format Ihrer Wahl (ich habe dies getan, weil IrfanView über immer leistungsfähigere Bildreduktionsalgorithmen verfügt).
Darüber hinaus befindet sich der Code zum Konvertieren in das Farbcodeformat, das von RGB nach PIL verwendet werden kann, auf der folgenden Site.
wallpaper.py
# -*- coding: utf-8 -*-
from PIL import Image
from PIL import ImageDraw
import colorsys
import sys
### http://code.activestate.com/recipes/266466-html-colors-tofrom-rgb-tuples/history/2/
def RGBToHTMLColor(rgb_tuple):
""" convert an (R, G, B) tuple to #RRGGBB """
hexcolor = '#%02x%02x%02x' % rgb_tuple
# that's it! '%02x' means zero-padded, 2-digit hex values
return hexcolor
def HTMLColorToRGB(colorstring):
""" convert #RRGGBB to an (R, G, B) tuple """
colorstring = colorstring.strip()
if colorstring[0] == '#': colorstring = colorstring[1:]
if len(colorstring) != 6:
raise(ValueError, "input #%s is not in #RRGGBB format" % colorstring)
r, g, b = colorstring[:2], colorstring[2:4], colorstring[4:]
r, g, b = [int(n, 16) for n in (r, g, b)]
return (r, g, b)
def HTMLColorToPILColor(colorstring):
""" converts #RRGGBB to PIL-compatible integers"""
colorstring = colorstring.strip()
while colorstring[0] == '#': colorstring = colorstring[1:]
# get bytes in reverse order to deal with PIL quirk
colorstring = colorstring[-2:] + colorstring[2:4] + colorstring[:2]
# finally, make it numeric
color = int(colorstring, 16)
return color
def PILColorToRGB(pil_color):
""" convert a PIL-compatible integer into an (r, g, b) tuple """
hexstr = '%06x' % pil_color
# reverse byte order
r, g, b = hexstr[4:], hexstr[2:4], hexstr[:2]
r, g, b = [int(n, 16) for n in (r, g, b)]
return (r, g, b)
def PILColorToHTMLColor(pil_integer):
return RGBToHTMLColor(PILColorToRGB(pil_integer))
def RGBToPILColor(rgb_tuple):
return HTMLColorToPILColor(RGBToHTMLColor(rgb_tuple))
args = sys.argv
if(len(args) != 3):
print("Args Error");
print("Usage %s [BaseHLS] [SubHLS]" % args[0])
quit()
colors = []
#Argumentanalyse
for arg in args[1:]:
a = arg.split(":")
rgb1 = colorsys.hls_to_rgb(int(a[0]) / 360, int(a[1]) / 100, int(a[2]) / 100)
color = RGBToPILColor((rgb1[0] * 255, rgb1[1] * 255, rgb1[2] * 255))
print("added color:", color)
colors += [color]
img = Image.new("RGB", (100, 100), "white")
hw = img.size[0] / 2
hh = img.size[1] / 2
draw = ImageDraw.Draw(img)
for i, c in zip(range(4), colors + colors[::-1]):
im = divmod(i, 2)
r = im[0] * hw
l = im[1] * hh
print("draw point", l, "x", r)
draw.ellipse((l, r, l + hw, r + hh), fill=c)
img.show()
Recommended Posts