我进行了最后一项测试(有可能是最后一项)
采用的图片是
精灵耳朵的第一个着色(由于模板颜色不在gradient上,不具备比较的价值,所以,需要选择配色图)
RM脚本如下- bit = Bitmap.new("faces2.png")
- bitg = Bitmap.new("gradients.png")
- c = Color.new(255,255,255)
- f2 = File.new("de.txt","w")
- carr = [c]
- garr = []
- for i in 0...256
-   garr.push(i)
- end
- gy = 144
- for y in 0...bit.height
-   for x in 0...bit.width
-     c = bit.get_pixel(x,y)
-     c.alpha = 255
-     pp = true
-     for i in 0...carr.size()
-       if c.red == (carr[i]).red && c.green == (carr[i]).green && c.blue == (carr[i]).blue
-         pp = false
-         break
-       end
-     end
-     if pp
-       carr.push(c)
-     end
-     b = false
-     for i in 0...256
-       c2 = bitg.get_pixel(i,gy)
-       if c.red == c2.red && c.green == c2.green && c. blue == c2.blue
-         garr.delete(i)
-         b = true
-       end
-     end
-     if b == false && pp
-       f2.puts(c.red.to_i.to_s+","+c.green.to_i.to_s+","+c.blue.to_i.to_s)
-     end
-   end
- end
- p garr
- p carr.size
- p carr
- bit.dispose
- bitg.dispose
- f2.close
- exit
复制代码
结果发现,这幅图片一共采用了348种颜色,这是大于256的。要知道gradient的宽度是256,也就是说色条上的颜色一共才256种。
而色条上的颜色也并不是全部都被使用了,大概三四十种颜色是没有被使用的。
而不再色条上的颜色我已经用脚本记录下来了,如下- 56,22,5
- 0,0,0
- 83,34,6
- 166,92,46
- 50,20,4
- 31,16,3
- 18,9,0
- 9,4,0
- 115,51,14
- 136,65,23
- 9,5,0
- 13,5,0
- 16,0,0
- 15,5,0
- 152,78,33
- 11,6,0
- 11,5,0
- 68,28,6
- 3,0,0
- 92,40,9
- 14,7,0
- 31,12,0
- 30,15,0
- 18,9,3
- 10,3,3
- 63,26,6
- 19,9,3
- 18,0,0
- 16,8,0
- 23,10,3
- 56,24,4
- 25,10,3
- 17,9,0
- 20,8,3
- 29,12,1
- 18,7,2
- 16,7,0
- 39,16,4
- 21,10,0
- 17,7,2
- 39,17,4
- 28,28,0
- 12,8,0
- 51,20,4
- 126,58,19
- 8,4,0
- 9,0,0
- 169,95,52
- 15,7,0
- 18,8,3
- 22,10,2
- 224,175,140
- 86,37,8
- 135,63,22
- 12,4,0
- 12,5,2
- 227,178,147
- 19,9,0
- 233,190,163
- 20,10,3
- 28,12,2
- 243,208,180
- 19,8,4
- 85,0,0
- 37,16,2
- 64,27,4
- 14,5,0
- 26,0,0
- 80,35,6
- 69,28,5
- 27,10,2
- 6,6,0
- 10,3,0
- 155,77,34
- 14,6,2
- 215,154,122
- 17,8,2
- 204,153,112
- 210,148,113
- 8,0,0
- 18,9,2
- 202,138,100
- 255,209,185
- 22,10,1
- 201,134,107
- 242,217,191
- 43,0,0
- 56,22,4
- 205,139,100
- 244,213,191
- 26,9,0
- 220,164,133
- 242,215,188
- 20,8,4
- 128,64,0
- 255,198,198
- 247,214,192
- 5,5,0
- 6,3,0
- 248,214,192
- 19,7,2
- 248,214,194
- 32,15,2
- 26,12,2
- 255,191,191
- 247,213,191
- 53,22,3
- 245,212,191
- 14,7,4
- 184,112,69
- 244,210,186
- 9,3,0
- 40,15,4
- 17,7,3
- 242,203,179
- 17,8,3
- 54,27,0
- 99,43,9
- 237,196,169
- 25,11,4
- 23,8,0
- 232,186,157
- 32,14,4
- 13,4,0
- 170,85,43
- 30,8,0
- 38,17,3
- 81,34,5
- 39,15,0
- 34,14,2
复制代码 不在色条上的前4个颜色
56,22,5
0,0,0
83,34,6
166,92,46
我在色条上找到了相近颜色的位置。
(其他的颜色肯定都能找到相近色,因为都是肉皮色嘛)
据此可以推测,配色图的颜色选取不单纯的是在gradient上找取颜色。
应该是根据色条来计算颜色,才对。
当然,不排除行走图和练图,取色原则不一致的可能性。不过,我想不会有人这么无聊,一个程序搞两套取色算法吧。
我觉得有可能是程序内部有一套模板色的色表,然后算法需要根据模板颜色,目标颜色,及色条,来计算目标色(而不是简单的在色条上取色)。。。最终,我们需要的图像就出来了。
以上,只是个人的推测。不作数。。
我最后实验了 精灵耳朵的第二个配色,仍然是这个脚本。。
gy改成148(第二配色)
一种采用的颜色是324种,约三四十种色条中的颜色未被使用。
从侧面印证了我的想法。 |