Pythonツール 画像(JPG,PNG,TIFFなど)

Pythonで化学図表を即座に処理。簡単にTIFFをJPEGに変換!

概要

このブログでは、特に化学者や研究者がよく使用するChemDrawなどで作成されたTIFFファイルをJPEGに簡単に変換するPythonスクリプトについて紹介します。この自動化されたツールは、研究やプレゼンテーション資料の準備を迅速化します。

使用例

  1. ChemDrawで作成したTIFFファイルの即時変換: ChemDrawで作成された構造式や化学式のTIFFファイルをドラッグアンドドロップするだけでJPEGに即座に変換され、同じフォルダに保存されます。
  2. 研究データの整理: 実験データやグラフを含むTIFF画像をすぐにJPEGに変換し、データの整理と共有を効率化します。
  3. 教育資料の作成サポート: 教育資料として使用する図や写真をTIFFからJPEGに変換し、PowerPointやWordなどのアプリケーションでの利用が容易になります。

必要なPythonライブラリとインストール方法

このスクリプトを使用するには、以下のPythonライブラリが必要です。

  • Pillow: 画像処理を行います。
  • tkinterdnd2: GUIのドラッグアンドドロップ機能を提供します。

インストール方法:

pip install pillow tkinterdnd2

使用手順

  1. 上記のライブラリをインストールします。
  2. 提供されたPythonスクリプトをPythonファイルとして保存します。
  3. スクリプトを実行し、GUIウィンドウが表示されるのを確認します。
  4. TIFFファイルをウィンドウにドラッグアンドドロップして、自動変換を行います。

注意点

  • このプログラムはTIFFファイルのみをサポートしています。他のファイル形式は受け付けません。
  • ファイルパスに特殊文字が含まれている場合、エラーが発生する可能性があります。

プログラム

下記のコードをメモ帳などに丸々コピーしてpythonファイル(〇〇.py)にしてください。

import tkinter as tk
from tkinterdnd2 import DND_FILES, TkinterDnD
from PIL import Image
import os

def convert_to_jpg(path):
# TIFFファイルを開く
img = Image.open(path)
# RGBAモードの場合、RGBに変換する
if img.mode == 'RGBA':
img = img.convert('RGB')
# ファイル名を生成し、同名ファイルがある場合はカウンターを付ける
base_name = os.path.splitext(path)[0]
new_path = base_name + '.jpg'
counter = 1
while os.path.exists(new_path):
new_path = f"{base_name}({counter}).jpg"
counter += 1
# JPEGとして保存
img.save(new_path, 'JPEG')
# 保存成功メッセージを更新
update_message(f'Converted and saved as {os.path.basename(new_path)}.')

def update_message(message):
message_label.config(text=message)
# 5秒後にメッセージを元に戻す
root.after(5000, lambda: message_label.config(text='TIFFファイルをここにドロップ'))

def drop(event):
files = root.tk.splitlist(event.data)
for file_path in files:
file_path = file_path.strip('{}').strip('"')
if file_path.endswith('.tif') or file_path.endswith('.tiff'):
convert_to_jpg(file_path)
else:
# ファイル形式が違う場合のメッセージを更新
update_message('Unsupported file format. Please drop a TIFF file.')

root = TkinterDnD.Tk()
root.title('TIFF to JPEG Converter')

# GUIのサイズを設定
root.geometry('300x100')

message_label = tk.Label(root, text='TIFFファイルをここにドロップ', pady=20, wraplength=280)
message_label.pack(fill=tk.BOTH, expand=True)

root.drop_target_register(DND_FILES)
root.dnd_bind('<<Drop>>', drop)

root.mainloop()

または、下のテキストファイルをダウンロードし、「.txt」を「.py」に変えることでそのまま使えます。

まとめ

このPythonスクリプトを使用することで、TIFFファイルを簡単にJPEGに変換し、研究や教育の効率を大幅に向上させることができます。データの整理や資料作成の時間を削減し、より重要な作業に集中することが可能になります。

-Pythonツール, 画像(JPG,PNG,TIFFなど)