media.set_xx ValueError

时间:2009-12-02 00:00:36

标签: python media

我问了一会儿关于精灵再生程序的问题,我遇到了困难,得到了很好的回应。基本上,我尝试编写一个程序,将给定文件夹中所有图片的像素从一种给定颜色重新着色到另一种颜色。

我相信我把它弄下来了,但是,现在程序告诉我,我的颜色的红色成分指定了无效值。 ValueError: Invalid red value specified.尽管它只是从64变为56.对此事的任何帮助都将不胜感激!

这是Python代码:

import os
import media
import sys

def recolour(old, new, folder):
old_list = old.split(' ')
new_list = new.split(' ')
folder_location = os.path.join('C:\\', 'Users', 'Owner', 'Spriting', folder)

for filename in os.listdir (folder):
    current_file = media.load_picture(folder_location + '\\' + filename)
    for pix in current_file:
        if (media.get_red(pix) == int(old_list[0])) and \
            (media.get_green(pix) == int(old_list[1])) and \
                (media.get_blue(pix) == int(old_list[2])):
            media.set_red(pix, new_list[0])
            media.set_green(pix, new_list[1])
            media.set_blue(pix, new_list[2])                
            media.save(pic)

如果名称 =='主要':

while 1:
    old = str(raw_input('Please insert the original RGB component, separated by a single space: '))
    if old == 'quit':
        sys.exit(0)
    new = str(raw_input('Please insert the new RGB component, separated by a single space: '))
    if new == 'quit':
        sys.exit(0)
    folder = str(raw_input('Please insert the name of the folder you wish to modify: '))
    if folder == 'quit':
        sys.exit(0)
    else:
        recolour(old, new, folder)

1 个答案:

答案 0 :(得分:0)

慢下来;但不用担心我明白了。没有将值转换为整数,试图使用字符串作为参数......