2024-02-12 12:48:35 | 我爱编程网
答: 主要涉及的是Python当中的
切片操作
,它可以操作list,tuple和字符串类型,它的语法基本形式如下:
三个参数的意义分别起始位置,终止位置和步长,
同时要注意,切片操作并不涉及最后的终止位置所在的那个元素。
因此
1:4:2表示从1开始取到3(4-1),步长为2,因此对应的下标为1和3。
所以color[1:4:2]也就是取color中下标为1和3对应元素的值
(注意Python中下标从0开始,也就是说对应取第2和第4个元素)
假设color的值如下所示:
那么对应的结果就为
[2, 4]
颜色代码:
红色#FF0000,深紫色#871F78,褐红色#8E236B,石英色#D9D9F3。
绿色#00FF00,深石板蓝#6B238E,中海蓝色#32CD99,艳蓝色#5959AB。
蓝色#0000FF,深铅灰色#2F4F4F,中蓝色#3232CD,鲑鱼色#6F4242。
牡丹红#FF00FF,深棕褐色#97694F,中森林绿#6B8E23,猩红色#BC1717。
青色#00FFFF,深
绿松石
色#7093DB,中鲜黄色EAEAAE,海绿色#238E68。
应用方法如下所示:
在pycharm中,如果使用了“import”语句导入了包,但是之后的代码中没有使用到这些包,那么这些包的颜色就是灰色的。示例如下:导入了re包以及requests包,但是只使用了requests包,没有使用re包。我爱编程网
# -*- coding: utf-8 -*-
import colorsys
def get_dominant_color(image):
#颜色模式转换,以便输出rgb颜色值
image = image.convert('RGBA')
#生成缩略图,减少计算量,减小cpu压力
image.thumbnail((200, 200))
max_score = None
dominant_color = None
for count, (r, g, b, a) in image.getcolors(image.size[0] * image.size[1]):
# 跳过纯黑色
if a == 0:
continue
saturation = colorsys.rgb_to_hsv(r / 255.0, g / 255.0, b / 255.0)[1]
y = min(abs(r * 2104 + g * 4130 + b * 802 + 4096 + 131072) >> 13, 235)
y = (y - 16.0) / (235 - 16)
# 忽略高亮色
if y > 0.9:
continue
# Calculate the score, preferring highly saturated colors.
# Add 0.1 to the saturation so we don't completely ignore grayscale
# colors by multiplying the count by zero, but still give them a low
# weight.
score = (saturation + 0.1) * count
if score > max_score:
max_score = score
dominant_color = (r, g, b)
return dominant_color
if __name__=="__main__":
from PIL import Image
import os
path = r'.\\pics\\'
fp = open('file_color.txt','w')
for filename in os.listdir(path):
print path+filename
try:
color = get_dominant_color(Image.open(path+filename))
fp.write('The color of '+filename+' is '+str(color)+'\n')
except:
print "This file format is not support"
fp.close()
pics
文件夹
和python程序在一个目录下,产生的文件名file_color.txt也在这个目录下。
看看能否帮到你
2024-01-01 09:58:48
2024-01-26 10:37:53
2024-01-17 23:29:33
2024-01-02 22:06:16
2024-01-01 04:24:22
2023-12-23 12:08:32