0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pygameでRPGをつくってみる6

Last updated at Posted at 2024-10-03

記事全体の目次へ移動

フォルダ内のすべてのファイルに追加

ここをクリックしてください

manto_12.png

player.png

上の画像が下の画像のようになります。

ファイルが読み込まれない場合はフォルダ名を確認してください。日本語のフォルダ名はダメです。フォルダ名がキャラチップだとエラーが出ます。サイズが違うのもダメです。大きさは96*128です。

pngファイルです。jpegファイルではありません。

OSError: [WinError 123] ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。というエラー文が表示されたら、パスの前に r をつけましょう。r"フォルダのパス" input()にしたら必要なくなりました。

ここではフォルダのパスにダブルクォーテーションは必要ありません。
スクリーンショット (692).png

画像編集
import cv2
import numpy as np
import os

# 処理するフォルダのパスを指定
folder_path = input("folder_path: ")
output_folder = input("output_folder: ")

# 出力フォルダが存在しない場合は作成
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# フォルダ内のすべてのファイルを処理
for filename in os.listdir(folder_path):
    if filename.endswith(".png"):
        file_path = os.path.join(folder_path, filename)
        image = cv2.imread(file_path, cv2.IMREAD_UNCHANGED)

        # 画像が正しく読み込まれたか確認
        if image is None:
            print(f"{filename} が読み込まれませんでした。")
            continue

        # コピーする部分の座標とサイズ
        x, y, w, h = 32, 0, 32, 128
        part = image[y:y+h, x:x+w]

        # 元の画像の右端に追加するために、新しい画像を作成
        new_width = image.shape[1] + w
        new_image = np.zeros((image.shape[0], new_width, 4), dtype=np.uint8)

        # 元の画像を新しい画像にコピー
        if image.shape[2] == 4:
            new_image[:, :image.shape[1], :] = image
        else:
            new_image[:, :image.shape[1], :3] = image
            new_image[:, :image.shape[1], 3] = 255  # アルファチャンネルを追加

        # コピーした部分を新しい画像の右端に追加
        if part.shape[2] == 4:
            new_image[:, image.shape[1]:, :] = part
        else:
            new_image[:, image.shape[1]:, :3] = part
            new_image[:, image.shape[1]:, 3] = 255  # アルファチャンネルを追加

        # 結果を保存
        output_path = os.path.join(output_folder, filename)
        cv2.imwrite(output_path, new_image)
        print(f"{filename} の処理が完了しました。")

print("すべてのファイルの処理が完了しました。")

フォルダ内のすべてのファイルに追加2

(pyファイルがあるフォルダで実行するだけです。フォルダ名の指定がいりません。上書きなので元の画像は失われます)

ここをクリックしてください
import cv2
import numpy as np
import os

# スクリプトが存在するフォルダのパスを取得
folder_path = os.path.dirname(os.path.abspath(__file__))
output_folder = os.path.join(folder_path)

# 出力フォルダが存在しない場合は作成
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# フォルダ内のすべてのファイルを処理
for filename in os.listdir(folder_path):
    if filename.endswith(".png"):
        file_path = os.path.join(folder_path, filename)
        image = cv2.imread(file_path, cv2.IMREAD_UNCHANGED)

        # 画像が正しく読み込まれたか確認
        if image is None:
            print(f"{filename} が読み込まれませんでした。")
            continue

        # コピーする部分の座標とサイズ
        x, y, w, h = 32, 0, 32, 128
        part = image[y:y+h, x:x+w]

        # 元の画像の右端に追加するために、新しい画像を作成
        new_width = image.shape[1] + w
        new_image = np.zeros((image.shape[0], new_width, 4), dtype=np.uint8)

        # 元の画像を新しい画像にコピー
        if image.shape[2] == 4:
            new_image[:, :image.shape[1], :] = image
        else:
            new_image[:, :image.shape[1], :3] = image
            new_image[:, :image.shape[1], 3] = 255  # アルファチャンネルを追加

        # コピーした部分を新しい画像の右端に追加
        if part.shape[2] == 4:
            new_image[:, image.shape[1]:, :] = part
        else:
            new_image[:, image.shape[1]:, :3] = part
            new_image[:, image.shape[1]:, 3] = 255  # アルファチャンネルを追加

        # 結果を保存
        output_path = os.path.join(output_folder, filename)
        cv2.imwrite(output_path, new_image)
        print(f"{filename} の処理が完了しました。")

print("すべてのファイルの処理が完了しました。")
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?