1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python颜色光谱单色效果图

Python颜色光谱单色效果图

时间:2022-04-08 13:54:20

相关推荐

Python颜色光谱单色效果图

参考资料:1、知乎《# 色彩空间中的 HSL、**HSV**、**HSB** 有什么区别?》/question/22077462/answer/3425701402、童晶《Python趣味创意编程》第10章3、纯净天空的博客/examples/usage/python-pil-image-new-method.html

一、HSV(HSB)颜色模型

HSV,又称HSB颜色模型。

H是hue的首字母,表示色调,取值范围0到360,刻画不同的色彩,比如红色为0,绿色为120,蓝色为240;S是saturation的首字母,表示饱和度,取值范围0到100,表示混合了白色的比例,值越高颜色越鲜艳;B是brightness的首字母,表示亮度,取值范围0到100,等于0为黑色,100最明亮。

二、颜色光谱单色效果图

# -*- coding: utf-8 -*-from PIL import Image, ImageColor, ImageDraw, ImageFont# 生成字符串"hsv(30,100%,100%)":def colorstr(i0):color1="hsv("+str(i0)+",100%,100%)"return color1.format("+{color1}+",color1)# 创建一个白色画布 # RGB mode and size 600x600 ,设定HSv对应分量的取值width = 600height = 600image = Image.new('RGB', (600, 600), (255,255,255))d = ImageDraw.Draw(image)# 光谱上的各种单色效果step=10 #每次增加10度for i in range(0,360,step):c=ImageColor.getrgb(colorstr(i))d.pieslice([100,150,width-100,height-50],i,i+step,c,c,1)# 生成四种绘制元素cClouds=ImageColor.getrgb("hsv(330,25%,100%)")cSky=ImageColor.getrgb("hsv(220,50%,50%)")cFurther=ImageColor.getrgb("hsv(230,25%,90%)")cCloser=ImageColor.getrgb("hsv(270,70%,10%)")d.pieslice([50,50,100,100],0,360,cClouds,cClouds,1)d.pieslice([200,50,250,100],0,360,cSky,cSky,1)d.pieslice([350,50,400,100],0,360,cFurther,cFurther,1)d.pieslice([500,50,550,100],0,360,cCloser,cCloser,1)# get a fontfnt = ImageFont.truetype("simhei.ttf", 20)# get a drawing contextd.text((65, 20), "云", font=fnt, fill=cClouds)d.text((205, 20), "天空", font=fnt, fill=cSky)d.text((355, 20), "远山", font=fnt, fill=cFurther)d.text((505, 20), "近山", font=fnt, fill=cCloser)d.text((210, 570), "颜色光谱单色效果图", font=fnt, fill=cCloser)image.save('color.jpg', 'jpeg')image.show()

三、运行结果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。