指定したファイルまたはディレクトリ以下のファイルのExif情報を削除します。
ソースコード1
指定したファイルのExifを削除する
from PIL import Image
from PIL.ExifTags import TAGS
import os
def delete_exif(filename):
image = Image.open(filename)
image_data = image.getdata()
image_mode = image.mode
image_size = image.size
new_image = Image.new(image_mode,image_size)
new_image.putdata(image_data)
old_filename = os.path.splitext(filename)[0]
old_ext = os.path.splitext(filename)[1][1:]
new_file = os.path.join(filename,f"{old_filename}_noexif.{old_ext}")
new_image.save(new_file)
print(f" New file > {new_file}")
def main():
filename = input("path > ")
delete_exif(filename)
return
if __name__ == "__main__":
main()
ソースコード2
指定したディレクトリ以下の「jpg/jpeg」、「png」画像ファイルのExif情報を削除する
from PIL import Image
import os
def main():
print("Exif delete tool")
root_path = input("Directory path > ")
print("Searching...")
for root,dirs,files in os.walk(root_path):
for file in files:
path = os.path.join(root,file)
ext = os.path.splitext(file)[1][1:]
target_ext = ["jpg","jpeg","png"]
if ext in target_ext:
print(f" file > {file}")
image = Image.open(path)
image_data = image.getdata()
image_mode = image.mode
image_size = image.size
new_image = Image.new(image_mode,image_size)
new_image.putdata(image_data)
old_filename = os.path.splitext(file)[0]
old_ext = os.path.splitext(file)[1][1:]
new_file = os.path.join(root,f"{old_filename}_noexif.{old_ext}")
new_image.save(new_file)
print(f" New file > {new_file}")
input("END")
return
if __name__ == "__main__":
main()