Google Colabで画像ファイルの処理(ファイル名を撮影日時に変更し、1/2リサイズ、明度アップ)

以下のコードを使って、Google Colabにアップロードした画像ファイルを撮影日時に基づいた名前に変更し、50%にリサイズし、明度を10%上げてJPEG形式で別名保存することができます。PythonのPILライブラリを使用しています。

  1. まず、必要なライブラリをインストールします。
!pip install pillow piexif
  1. 以下は、アップロード、画像処理、別名保存を行うためのコードです。
import os
from PIL import Image, ImageEnhance
import piexif
from google.colab import files

# 画像ファイルをアップロード
uploaded = files.upload()

for filename in uploaded.keys():
    # 画像を開く
    img = Image.open(filename)

    # EXIFデータの取得
    exif_dict = piexif.load(img.info['exif'])

    # 撮影日時の取得
    try:
        datetime_original = exif_dict['Exif'][piexif.ExifIFD.DateTimeOriginal].decode('utf-8')
        new_filename = datetime_original.replace(":", "").replace(" ", "_") + ".jpg"
    except KeyError:
        print(f"{filename} に撮影日時が含まれていません。")
        continue

    # 画像のリサイズ (50%に縮小)
    img_resized = img.resize((img.width // 2, img.height // 2))

    # 明度を10%アップ
    enhancer = ImageEnhance.Brightness(img_resized)
    img_brightened = enhancer.enhance(1.1)  # 明度を1.1倍に

    # 新しいファイル名で保存(JPEG形式)
    img_brightened.save(new_filename, "JPEG", exif=img.info['exif'])

    print(f"{filename} を {new_filename} として保存しました。")

コードの解説:

  • files.upload() で画像をColabにアップロードします。
  • piexif ライブラリを使って画像のEXIF情報を取得し、撮影日時 (DateTimeOriginal) に基づいてファイル名を変更します。
  • resize() メソッドで画像のサイズを50%にリサイズします。
  • ImageEnhance.Brightness を使って、明度を10%アップします。
  • 新しいファイル名でJPEG形式で保存します。

アップロードされた画像にEXIF情報が含まれていない場合は、元のファイル名がそのまま保持されます。

英訳

Here’s the code to upload an image file to Colab, rename it based on the shooting date and time, resize it to 50%, increase the brightness by 10%, and save it as a new JPEG file. The code uses the PIL library in Python.

  1. First, install the necessary libraries:
!pip install pillow piexif
  1. Here is the code to upload, process, and save the image:
import os
from PIL import Image, ImageEnhance
import piexif
from google.colab import files

# Upload image file
uploaded = files.upload()

for filename in uploaded.keys():
    # Open image
    img = Image.open(filename)

    # Get EXIF data
    exif_dict = piexif.load(img.info['exif'])

    # Get the shooting date and time
    try:
        datetime_original = exif_dict['Exif'][piexif.ExifIFD.DateTimeOriginal].decode('utf-8')
        new_filename = datetime_original.replace(":", "").replace(" ", "_") + ".jpg"
    except KeyError:
        print(f"No shooting date found in {filename}.")
        continue

    # Resize image (50% reduction)
    img_resized = img.resize((img.width // 2, img.height // 2))

    # Increase brightness by 10%
    enhancer = ImageEnhance.Brightness(img_resized)
    img_brightened = enhancer.enhance(1.1)  # Increase brightness by 10%

    # Save as new file (JPEG format)
    img_brightened.save(new_filename, "JPEG", exif=img.info['exif'])

    print(f"Saved {filename} as {new_filename}.")

重要単語と熟語

  • resize – リサイズする、サイズを変更する
  • enhance – 強化する、(明度を)上げる
  • EXIF data – 画像のメタデータ情報 (撮影日時やカメラの設定など)

コメントする