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モジュールを使い、
- 複数のHEICファイルを選択
- 保存先を選択
- 変換!
の3ステップで変換が完了します!
ただOS上での事前準備も必要になるので、下記で説明するライブラリをインストールしましょう!
Ubuntu上で動作する「libheif」ライブラリ
libheifライブラリがこの変換のキモとなります
インストールがまだな方は必ずインストール!
$ sudo apt install libheif-examples
ファイル一つだけならこちらのコードで十分
libheifライブラリは通常のターミナル上で行います
コードは下記のとおりです
$ heif-convert img.HEIC img.jpg
$ heif-convertに続き、【元のheifファイル】【新しいjpgファイル】
となります
一つや数の少ないファイルを変換するにはこのコードさえ覚えておけば変換可能です!
もう少し詳しく、このコードについて知りたいという方は下記もご覧ください!
もう少し詳しく!
変換をするコード自体はそんなに複雑ではありませんでしたね
ただ、複数となると他のモジュールも使っているので複雑に見えてしまうかもしれません
主には、
tkinter, os
というモジュールを使っていますので、こちらの解説については別記事でご紹介しておりますので、興味のある方はぜひご覧ください
以上となります
ありがとうございました!!!