はい、フォルダ内の画像を10MBごとに分割して圧縮する方法はいくつかあります。以下の方法は、LinuxやmacOS環境でコマンドラインを使用する例です。Windowsユーザーの方は、代替ソフトウェアを使用する方法を紹介します。
Linux/macOSの場合
1. コマンドラインツールを使用する方法:
- zip コマンドと split コマンドの組み合わせで行います。
- まず、全ての画像を一つのZIPファイルに圧縮します:
zip images.zip /path/to/images/*
- 次に、split コマンドを使用して10MBごとに分割します:
split -b 10m images.zip images_part_
- 分割されたファイルは images_part_aa, images_part_ab などのように保存されます。
2. 直接ファイルごとに分割圧縮する方法:
- 各ファイルを個別に圧縮し、既に作成されたZIPファイルのサイズが10MBを超えないようにします。
- 以下はPythonスクリプトを使用した例です:
python
import os
import zipfile
def add_to_zip(zip_path, file_path, max_size_mb):
# 現在のZIPファイルのサイズをチェック
zip_size = os.path.getsize(zip_path) if os.path.exists(zip_path) else 0
if zip_size + os.path.getsize(file_path) > max_size_mb * 1024 * 1024:
return False
return True
def zip_images(image_folder, output_folder, max_size_mb=10):
part_number = 1
zip_name = os.path.join(output_folder, f'images_part_part_number:02d}.zip')
zip_file = zipfile.ZipFile(zip_name, 'w')
for root, _, files in os.walk(image_folder):
for file in files:
file_path = os.path.join(root, file)
if not add_to_zip(zip_name, file_path, max_size_mb):
part_number += 1
zip_name = os.path.join(output_folder, f'images_part_part_number:02d}.zip')
zip_file = zipfile.ZipFile(zip_name, 'w')
zip_file.write(file_path, os.path.relpath(file_path, image_folder))
zip_file.close()
image_folder = '/path/to/images'
output_folder = '/path/to/output'
zip_images(image_folder, output_folder)
- このスクリプトは、指定されたフォルダ内のすべての画像ファイルを圧縮し、各ZIPファイルのサイズが10MB以下になるように分割します。
Windowsの場合
- WinRARを使用する方法:
1. WinRARをダウンロードしてインストールします。
2. WinRARを右クリックメニューに追加します。
3. 対象フォルダを右クリックし、「WinRARで圧縮」を選択します。
4. 「設定」タブから「名前の形式」に images_part_#.zip を入力します。
5. 「分割」セクションで「分割サイズ」に10MBを設定します。
6. 「OK」をクリックして圧縮を開始します。
これらの方法は、フォルダ内の画像を10MBごとに分割して圧縮するのに役立ちます。どの方法でも、ファイルの結合は必要ありません。