【Pythonアプリ(コピペ可)のご紹介】複数の.HEICイメージを一括でJPGに変換する

LinuxPythonアプリ

iPhoneなどで写真を取ると、「.HEIC」という拡張子で保存されます

これをパソコンで処理をしようとすると、なかなか不便!

同じように感じている人も多いのではないでしょうか?

この不便さを一気に解消すべく、Pythonをベースとしたアプリを作りましたのでご紹介します!

コピペなどをしてご自身でもお使い頂けるものとなっています

カスタマイズもできますので、ぜひ解説も含めてご覧ください

早速アプリのコードをご紹介!

import tkinter.filedialog, tkinter.messagebox, tkinter.simpledialog, os

from tkinter import *		
from PIL import Image


root = Tk()
root.title('HEIC Converter')

def choose_file():
	fTyp = [("","*.HEIC")]
	global iDir
	iDir = os.path.abspath(os.path.dirname(__file__))
	global img_path_list
	img_path_list = tkinter.filedialog.askopenfilenames(filetypes=fTyp, initialdir=iDir, title="HEICファイルを選んで下さい(複数選択可)")
	lbl = Label(root, text=','.join(img_path_list))
	
	lbl.pack()

def choose_saveDir():
	global iDir
	global saveDir
	saveDir = tkinter.filedialog.askdirectory(title="保存先を選んで下さい", initialdir=iDir)
	os.chdir(saveDir)
	label = Label(root, text=saveDir.title)


def finishup():
	global img_path_list
	global saveDir
	for img_path in img_path_list:

		title, ext = os.path.splitext(img_path)
		
		jpg_path = title + ".jpg"

		os.system(f"heif-convert -q 50 {img_path} {jpg_path}")

	tkinter.messagebox.showinfo("Finish Converting", "Finish Converting")
	root.quit()

choose_btn = Button(root, text="選択", command=choose_file)
choose_btn.pack()



saving_btn = Button(root, text="保存フォルダの選択", command=choose_saveDir)
saving_btn.pack()

finishup_btn = Button(root, text='JPGへ変換する', command=finishup)
finishup_btn.pack()

root.mainloop()

tkinter, osモジュールを使い、

  1. 複数のHEICファイルを選択
  2. 保存先を選択
  3. 変換!

の3ステップで変換が完了します!

ただOS上での事前準備も必要になるので、下記で説明するライブラリをインストールしましょう!

Ubuntu上で動作する「libheif」ライブラリ

libheifライブラリがこの変換のキモとなります

インストールがまだな方は必ずインストール!

$ sudo apt install libheif-examples

ファイル一つだけならこちらのコードで十分

libheifライブラリは通常のターミナル上で行います

コードは下記のとおりです

$ heif-convert img.HEIC img.jpg

$ heif-convertに続き、【元のheifファイル】【新しいjpgファイル】

となります

一つや数の少ないファイルを変換するにはこのコードさえ覚えておけば変換可能です!

もう少し詳しく、このコードについて知りたいという方は下記もご覧ください!

もう少し詳しく!

変換をするコード自体はそんなに複雑ではありませんでしたね

ただ、複数となると他のモジュールも使っているので複雑に見えてしまうかもしれません

主には、

tkinter, os

というモジュールを使っていますので、こちらの解説については別記事でご紹介しておりますので、興味のある方はぜひご覧ください

以上となります

ありがとうございました!!!

タイトルとURLをコピーしました