import os
import base64
from PIL import Image
def save_image_base64(input_directory, output_directory):
# 保存先のディレクトリが存在しない場合は作成
if not os.path.exists(output_directory):
os.makedirs(output_directory)
# 入力ディレクトリ内のすべてのファイルを取得
for filename in os.listdir(input_directory):
# 拡張子がPNGのファイルのみ処理する
if filename.lower().endswith('.png'):
# 画像ファイルのフルパスを作成
image_path = os.path.join(input_directory, filename)
# 画像を開く
try:
img = Image.open(image_path)
except FileNotFoundError:
print(f'Error: {filename} not found in {input_directory}')
continue
# 画像データをBase64エンコード
img_data_base64 = base64.b64encode(img.tobytes()).decode('utf-8')
# 出力ファイルパスを作成
output_file_path = os.path.join(output_directory, f'{os.path.splitext(filename)[0]}.txt')
# ファイルにデータを書き込む
with open(output_file_path, 'w') as file:
file.write(img_data_base64)
print(f'Base64 data of {filename} has been written to {output_file_path}')
if __name__ == '__main__':
# 画像ファイルがあるディレクトリパス
input_directory = 'flowers'
# 保存先のディレクトリパス
output_directory = 'png-out1'
# 画像データをBase64形式で保存
save_image_base64(input_directory, output_directory)