複数画像のうち、カラーモードがCMYKの画像だけを別フォルダにコピーし、RGBに一括変換する
環境・使用アプリなど
- Mac
- Python3.6.8
- Visual Studio Code
- Pillow
Visual Studio Code とPython機能拡張をインストール
Python3をインストール
anyenv、pyenvを使用してPythonのバージョン管理をする
参照:anyenv、pyenvでPythonバージョン管理、仮想環境作成、仮想環境でIDLE起動(Mac)
今回はPython3.6.8を使用
Python3.7.3では、Pillowをインストールしても「PROBLEMS」に「Unable to import 'PIL'」と表示されて、実行できない。(まだPython3.7.xはPillowに対応していない?)
参考:https://teratail.com/questions/130649
Visual Studio Codeのターミナルで仮想環境を作成し、有効化する
$ cd <仮想環境を作成するディレクトリのパス>
$ python -m venv <仮想環境名>
$ cd <仮想環境名>
$ source bin/activate
Pillowをインストール
$ pip install Pillow
Pythonスクリプトを作成
cmyktorgb.py
import os
from PIL import Image
from PIL import ImageCms
# OS機能のモジュールのインポート
# 画像の読込み、作成などを行うためのImageモジュールのインポート
# カラープロファイルを管理するImageCmsモジュールのインポート
os.makedirs('cmyktorgb-icc', exist_ok=True)
# ディレクトリ'cmyktorgb-icc'を作成
# カレントディレクトリの全画像をループする
for filename in os.listdir('.'):
if not (filename.endswith('.jpg') or filename.endswith('.jpeg')):
continue
#.jpg、.jpeg以外はスキップ
im = Image.open(filename)
# イメージを開く
if im.mode == 'CMYK':
im = ImageCms.profileToProfile(im, inputProfile, outputProfile, renderingIntent=0, outputMode='RGB')
im.save(os.path.join('cmyktorgb-icc', filename))
指定するプロファイルのファイルパスは、Macの場合「ColorSyncユーティリティ」を使用して調べることができる
例)
- inputProfile(adobeのカラープロファイル): '/Library/Application Support/Adobe/Color/Profiles/Recommended/USWebCoatedSWOP.icc'
- outputProfile(sRGB IEC61966-2.1):'/System/Library/ColorSync/Profiles/sRGB Profile.icc'
Pythonスクリプトの実行
VS Codeのcmyktorgb.pyを開いた画面で、右クリック(Ctrl+クリック)して表示されたメニューから「Run Python File in
Terminal」を選択して実行する
仮想環境の無効化
$ deactivate