フィルター設定は出来てるけど、pythonでLUTを作ることにしたので、jsonの設定ファイルをそのまま使おうかなと
JSON読み込み
import json # JSONファイルを開く(読み込みモード) with open('data.json', 'r', encoding='utf-8') as f: # JSONデータをPythonオブジェクトに変換 data = json.load(f) # 読み込んだデータの確認 print(data)
import json json_data = """ { "filters": [ { "id": "aaa_001", "name": "淡く儚いイメージ", "debug": "", "group": "AAAAA", "groupIndex": 0, "parameters": { "rc": [0.0, 0.0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1.0, 1.0], "gc": [0.0, 0.0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1.0, 1.0], "bc": [0.0, 0.0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1.0, 1.0], "sa":[ 1.0, 1.0, 1.0], "ma":[ 1.0, 1.0, 1.0 ], "ha":[ 1.0, 1.0, 1.0 ], "saturation": 1.0, "brightness": 0.0, "contrast": 1.0, "sh":[0,0,0], "mh":[0,0,0], "hh":[0,0,0], "cf":[0.9,0.9,1.0,0.03] } } ] } """ data = json.loads(json_data)
filters = data["filters"] for filter_item in filters: print(f"フィルターID: {filter_item['id']}") print(f"フィルター名: {filter_item['name']}") print(f"グループ: {filter_item['group']}") print("パラメーター:") for key, value in filter_item["parameters"].items(): print(f" {key}: {value}") print("-" * 20)
特定のフィルターにIDでアクセス
def find_filter_by_id(filters, target_id): for filter_item in filters: if filter_item["id"] == target_id: return filter_item return None target_filter = find_filter_by_id(filters, "aaaa_001") if target_filter: print(f"フィルター名: {target_filter['name']}") print(f"カラーフィルター: {target_filter['parameters']['colorFilter']}") else: print("指定されたIDのフィルターは見つかりませんでした。")
データ変更
# "awa_001"フィルターの彩度を変更 for filter_item in filters: if filter_item["id"] == "aaaa_001": filter_item["parameters"]["saturation"] = 1.2 break # 変更後の彩度を確認 target_filter = find_filter_by_id(filters, "aaaa_001") print(f"変更後の彩度: {target_filter['parameters']['saturation']}")
JSON書き込み
with open("modified_filters.json", "w") as f: json.dump(data, f, indent=4)
ふむふむ
コメント