我已经编写了这段代码来创建图像,就像您在搜索颜色选择器时使用的图像一样。
问题出在j的for循环中,如果该部分被注释掉了,那么我可以在图像中单击而不会降低速度。因此,我的问题是,是否有某种方法可以简化数学运算,或者我不了解python使得它在这里变慢。
def create_palette(src, color):
width = 255
height = 255
for x in xrange(255):
for y in xrange(255):
new_color = [color[0],color[1],color[2],255.0]
x_distance = float(x)/float(width)
y_distance = float(y)/float(height)
for j in xrange(3):
new_color[j] += float(255-new_color[apply_y]) * x_distance
new_color[j] -= float(new_color[j]) * y_distance
src.set_at((x,y), new_color)
return src