0

しばらく前に、私が苦労していたスプライトの色変更プログラムについて尋ねたところ、素晴らしい回答がいくつかありました。基本的に、特定のフォルダー内のすべての画像のピクセルを特定の色から別の色に変更するプログラムを作成しようとしました。

ダウンしていると思いますが、現在、プログラムは、色の赤のコンポーネントに無効な値が指定されていることを示しています。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)
4

1 に答える 1

0

遅いです。しかし、私はそれを手に入れました。値を整数に変換せず、文字列を引数として使用しようとしていました...

于 2009-12-08T20:38:46.510 に答える